. * */ namespace OCA\Passman\Service; use OCA\Passman\Db\File; use OCP\IConfig; use OCP\AppFramework\Db\DoesNotExistException; use OCA\Passman\Db\FileMapper; class FileService { private $fileMapper; private $encryptService; private $server_key; public function __construct(FileMapper $fileMapper, EncryptService $encryptService) { $this->fileMapper = $fileMapper; $this->encryptService = $encryptService; $this->server_key = \OC::$server->getConfig()->getSystemValue('passwordsalt', ''); } /** * Get a single file. This function also returns the file content. * * @param $fileId * @param null $userId * @return \OCA\Passman\Db\File */ public function getFile($fileId, $userId = null) { $file = $this->fileMapper->getFile($fileId, $userId); return $this->encryptService->decryptFile($file); } /** * Get a single file. This function also returns the file content. * * @param $file_guid * @param null $userId * @return \OCA\Passman\Db\File */ public function getFileByGuid($file_guid, $userId = null) { $file = $this->fileMapper->getFileByGuid($file_guid, $userId); return $this->encryptService->decryptFile($file); } /** * Upload a new file, * * @param $file array * @param $userId * @return \OCA\Passman\Db\File */ public function createFile($file, $userId) { $file = $this->encryptService->encryptFile($file); $file = $this->fileMapper->create($file, $userId); return $this->getFile($file->getId()); } /** * Delete file * * @param $file_id * @param $userId * @return \OCA\Passman\Db\File */ public function deleteFile($file_id, $userId) { return $this->fileMapper->deleteFile($file_id, $userId); } /** * Update file * * @param File $file * @return \OCA\Passman\Db\File */ public function updateFile($file) { $file = $this->encryptService->encryptFile($file); return $this->fileMapper->updateFile($file); } /** * Update file * * @param string $userId * @return File[] */ public function getFilesFromUser($userId){ $files = $this->fileMapper->getFilesFromUser($userId); $results = array(); foreach ($files as $file){ array_push($results, $this->encryptService->decryptFile($file)); } return $results; } }