/** * @param $accountId * @param $fileId * @param Request $request * @return JsonResponse */ public function putFilesAction($accountId, $fileId, Request $request) { $params = $this->getPostJson($request); $this->configuration->updateFile($accountId, $fileId, $params); $files = []; /** @var File $file */ foreach ($this->configuration->getFiles($accountId) as $file) { $files[] = $file->toArray(); } return $this->createJsonResponse($files, 200); }
/** * Run */ public function testRun() { $this->createConfig(); $this->createAccount(); // add files to config $file = new File(['id' => 0, 'title' => 'Test Sheet', 'tableId' => $this->tableId, 'targetFolder' => '0B8ceg4OWLR3lelQzMm9pcDEyNHc', 'type' => 'sheet']); $file2 = new File(['id' => 1, 'title' => 'Test File', 'tableId' => $this->tableId, 'targetFolder' => '0B8ceg4OWLR3lelQzMm9pcDEyNHc', 'type' => 'file']); $file3 = new File(['id' => 2, 'title' => 'Test Sheet Redshift', 'tableId' => $this->rsTableId, 'targetFolder' => '0B8ceg4OWLR3lelQzMm9pcDEyNHc', 'type' => 'sheet']); $file4 = new File(['id' => 3, 'title' => 'Test File Redshift', 'tableId' => $this->rsTableId, 'targetFolder' => '0B8ceg4OWLR3lelQzMm9pcDEyNHc', 'type' => 'file']); $filesToSync = [$file, $file2, $file3, $file4]; /** @var $f File */ foreach ($filesToSync as $f) { $this->configuration->addFile($this->accountId, $f->toArray()); } // run $job = $this->processJob($this->componentName . '/run'); $this->assertEquals('success', $job->getStatus()); // update files $files = $this->configuration->getFiles($this->accountId); /** @var File $file */ $file = $files[0]; $file->setTitle('Test Sheet Updated'); $this->configuration->updateFile($this->accountId, $file->getId(), $file->toArray()); /** @var File $file2 */ $file2 = $files[1]; $file2->setTitle('Test File Updated'); $this->configuration->updateFile($this->accountId, $file2->getId(), $file2->toArray()); /** @var File $file3 */ $file3 = $files[2]; /** @var File $file4 */ $file4 = $files[3]; $this->httpClient->restart(); $job = $this->processJob($this->componentName . '/run'); $this->assertEquals('success', $job->getStatus()); $updatedFiles = $this->configuration->getFiles($this->accountId); /** @var File $updatedFile */ $updatedFile = $updatedFiles[0]; /** @var File $updatedFile2 */ $updatedFile2 = $updatedFiles[1]; $this->assertEquals($file->getGoogleId(), $updatedFile->getGoogleId()); $this->assertEquals($file2->getGoogleId(), $updatedFile2->getGoogleId()); $this->assertEquals('Test File Redshift', $file4->getTitle()); $this->assertEquals('Test Sheet Redshift', $file3->getTitle()); }