OCA\Richdocuments\Genesis::__construct PHP Method

__construct() public method

Create new genesis document
public __construct ( File $file )
$file File
    public function __construct(File $file)
    {
        $view = $file->getOwnerView();
        $path = $file->getPath();
        $owner = $file->getOwner();
        $this->view = new View('/' . $owner);
        if (!$this->view->file_exists(self::DOCUMENTS_DIRNAME)) {
            $this->view->mkdir(self::DOCUMENTS_DIRNAME);
        }
        $this->validate($view, $path);
        $this->hash = $view->hash('sha1', $path, false);
        $this->path = self::DOCUMENTS_DIRNAME . '/' . $this->hash . '.odt';
        if (!$this->view->file_exists($this->path)) {
            //copy new genesis to /user/documents/{hash}.odt
            // get decrypted content
            $content = $view->file_get_contents($path);
            $mimetype = $view->getMimeType($path);
            $data = Filter::read($content, $mimetype);
            $this->view->file_put_contents($this->path, $data['content']);
        }
        try {
            $this->validate($this->view, $this->path);
        } catch (\Exception $e) {
            throw new \Exception('Failed to copy genesis');
        }
    }