Skip to content

Commit cd2ac8d

Browse files
committed
Added status action. Split compilelibraries action into one that will be used by codebender website and one that will be used by others.
1 parent e385472 commit cd2ac8d

File tree

2 files changed

+80
-20
lines changed

2 files changed

+80
-20
lines changed

Symfony/src/Codebender/ApiBundle/Controller/DefaultController.php

Lines changed: 67 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,44 +12,94 @@
1212
class DefaultController extends Controller
1313
{
1414
/**
15-
* compilelibraries action
15+
* status action
1616
*
1717
* @return Response Response intance.
1818
*
1919
*/
20-
public function compilelibrariesAction($auth_key, $version)
20+
public function statusAction()
21+
{
22+
return new Response(json_encode(array("success" => true, "status" => "OK")));
23+
}
24+
25+
/**
26+
* compileWebsite action
27+
*
28+
* @return Response Response intance.
29+
*
30+
*/
31+
public function compileWebsiteAction($auth_key, $version)
2132
{
2233

2334
if ($auth_key !== $this->container->getParameter('auth_key'))
2435
{
2536
return new Response(json_encode(array("success" => false, "step" => 0, "message" => "Invalid authorization key.")));
2637
}
2738

28-
if ($version == $this->container->getParameter('version')) {
29-
$request = $this->getRequest()->getContent();
39+
if ($version !== $this->container->getParameter('version'))
40+
{
41+
return new Response(json_encode(array("success" => false, "step" => 0, "message" => "Invalid api version.")));
42+
}
43+
44+
$request = $this->getRequest()->getContent();
45+
46+
$contents = json_decode($request, true);
47+
48+
$apihandler = $this->get('codebender_api.handler');
3049

31-
$contents = json_decode($request, true);
50+
$personalMatchedLibs = $contents['libraries'];
3251

33-
$apihandler = $this->get('codebender_api.handler');
52+
$files = $contents["files"];
3453

35-
$personalMatchedLib = $contents['libraries'];
36-
$files = $contents["files"];
54+
$headersArr = $this->checkHeaders($files, $personalMatchedLibs);
3755

38-
// get library manager url.
39-
$libmanager_url = $this->container->getParameter('library');
56+
$contents["libraries"] = $headersArr['libraries'];
57+
$request_content = json_encode($contents);
4058

41-
$headersArr = $this->checkHeaders($files, $personalMatchedLib);
59+
// perform the actual post to the compiler
60+
$data = $apihandler->post_raw_data($this->container->getParameter('compiler'), $request_content);
4261

43-
$contents["libraries"] = $headersArr['libraries'];
44-
$request_content = json_encode($contents);
62+
$responsedata = array('success' => true, 'personal' => $personalMatchedLibs, 'library' => $headersArr['libraries'], 'foundFiles' => $headersArr['foundFiles'], 'notFoundHeaders' => $headersArr['notFoundHeaders'], 'compileResponse' => $data);
4563

46-
// compile into compiler with passing request_contents data.
47-
$data = $apihandler->post_raw_data($this->container->getParameter('compiler'), $request_content);
64+
return new Response(json_encode($responsedata));
65+
}
66+
67+
/**
68+
* compile action
69+
*
70+
* @return Response Response intance.
71+
*
72+
*/
73+
public function compileAction($auth_key, $version)
74+
{
4875

49-
$responsedata = array('success' => true, 'library' => $headersArr['libraries'], 'foundFiles' => $headersArr['foundFiles'], 'notFoundHeaders' => $headersArr['notFoundHeaders'], 'compileResponse' => $data);
76+
if ($auth_key !== $this->container->getParameter('auth_key'))
77+
{
78+
return new Response(json_encode(array("success" => false, "step" => 0, "message" => "Invalid authorization key.")));
79+
}
5080

51-
return new Response(json_encode($responsedata), 200);
81+
if ($version !== $this->container->getParameter('version'))
82+
{
83+
return new Response(json_encode(array("success" => false, "step" => 0, "message" => "Invalid api version.")));
5284
}
85+
86+
$request = $this->getRequest()->getContent();
87+
88+
$contents = json_decode($request, true);
89+
90+
$apihandler = $this->get('codebender_api.handler');
91+
92+
$files = $contents["files"];
93+
94+
$headersArr = $this->checkHeaders($files, array());
95+
96+
$contents["libraries"] = $headersArr['libraries'];
97+
$request_content = json_encode($contents);
98+
99+
// perform the actual post to the compiler
100+
$data = $apihandler->post_raw_data($this->container->getParameter('compiler'), $request_content);
101+
102+
return new Response($data);
53103
}
54104

55105
/**
Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1-
CodebenderApiBundle_compile:
2-
pattern: /compile/{auth_key}/{version}
3-
defaults: { _controller: CodebenderApiBundle:Default:compilelibraries }
1+
CodebenderApiBundle_status_check:
2+
pattern: /status
3+
defaults: { _controller: CodebenderApiBundle:Default:status }
4+
5+
CodebenderApiBundle_cb_website_compile:
6+
pattern: /{auth_key}/{version}/website/compile
7+
defaults: { _controller: CodebenderApiBundle:Default:compileWebsite }
48
requirements:
59
_method: POST
10+
11+
CodebenderApiBundle_compile:
12+
pattern: /{auth_key}/{version}/compile
13+
defaults: { _controller: CodebenderApiBundle:Default:compile }
14+
requirements:
15+
_method: POST

0 commit comments

Comments
 (0)