3 require_once('../include/json-header.php');
4 require_once('../include/manifest.php');
5 require_once('../include/report-processor.php');
7 function main($post_data) {
8 set_exit_detail('failureStored', false);
12 exit_with_error('DatabaseConnectionFailure');
14 // Convert all floating points to strings to avoid parsing them in PHP.
15 // FIXME: Do this conversion in the submission scripts themselves.
16 $parsed_json = json_decode(preg_replace('/(?<=[\s,\[])(\d+(\.\d+)?)(\s*[,\]])/', '"$1"$3', $post_data), true);
18 exit_with_error('FailedToParseJSON');
20 set_exit_detail('processedRuns', 0);
21 foreach ($parsed_json as $i => $report) {
22 $processor = new ReportProcessor($db);
23 $processor->process($report);
24 set_exit_detail('processedRuns', $i + 1);
27 $generator = new ManifestGenerator($db);
28 if (!$generator->generate())
29 exit_with_error('FailedToGenerateManifest');
30 else if (!$generator->store())
31 exit_with_error('FailedToStoreManifest');
36 main($HTTP_RAW_POST_DATA);