Exemple #1
0
/**
 * Upload Excel Function
 */
$app->post('/uploader', function (Request $request) use($app) {
    try {
        ini_set('max_execution_time', 100000);
        $upload = $app['form.factory']->createBuilder(new UploadType())->getForm();
        $upload->handleRequest($request);
        if ($upload->isValid()) {
            $file = $request->files->get($upload->getName());
            $path = ROOT . 'web/upload/';
            $filename = $file['file']->getClientOriginalName();
            $isbns = ExcelWorker::getISBNSFromExcelDocument($file, $path, $filename);
            $database = new DBConnection($app);
            $isbnsNotFound = $database->findISBN13NotInDatabase($isbns);
            $apiArray = $database->findAllApis();
            $count = 0;
            foreach ($apiArray as $api) {
                if (!is_null($isbnsNotFound)) {
                    $apiInfo = $database->findApiInfoFromName($api);
                    $apiClass = new $apiInfo[Constants::API_CLASSNAME](['api_key' => $apiInfo[Constants::API_KEY]]);
                    $apiClass->find($isbnsNotFound, $app);
                }
                $count++;
            }
            $filename = trim($filename, ".xlsx") . time() . ".xlsx";
            $database->saveFile($filename, $isbns);
            return new JsonResponse(Util::getUploaderReturnMessage($filename));
        } else {
            return new JsonResponse(json_encode(['response' => 'File is invalid!', 'errors' => Util::getFormErrorMessages($upload)]));
        }