new: Add classes required to upload identity document during account registration. #5

This commit is contained in:
weichien00
2021-07-03 00:58:24 +08:00
parent 9bcb45e5cc
commit aaf0ff7645
10 changed files with 533 additions and 0 deletions
@@ -0,0 +1,80 @@
<?php
namespace App\Classes\Modules\Documents\DataTransferObjects;
use App\Classes\General\Interfaces\DataTransferObject;
use App\Classes\Modules\Documents\Services\ConvertsBase64ToFile;
class DocumentObject implements DataTransferObject
{
/** @var string */
private $document_type;
/** @var array */
private $files;
/** @var string */
private $reference;
/** @var int */
private $status;
/** @var string|null */
private $path;
/**
* DocumentObject constructor.
* @param string $document_type
* @param array $files
* @param string $reference
* @param int $status
* @param null|string $path
*/
public function __construct(string $document_type, array $files, string $reference, int $status, ?string $path = '')
{
$this->document_type = $document_type;
$this->files = $files;
$this->reference = $reference;
$this->status = $status;
$this->path = $path;
}
/**
* @return string
*/
public function getDocumentType(): string
{
return $this->document_type;
}
/**
* @return string
*/
public function getReference(): string
{
return $this->reference;
}
/**
* @return int
*/
public function getStatus(): int
{
return $this->status;
}
/**
* @return array
* @throws \App\Classes\Exceptions\MalformedRequestException
*/
public function getFiles(): array
{
return (new ConvertsBase64ToFile($this->path))->convert($this->files);
}
}