Issues (2)

src/Document.php (1 issue)

1
<?php
2
3
namespace ViniciusRBezerra\Autentique;
4
5
use CURLFile;
6
7
class Document extends Autentique
8
{
9
10
    public function __construct()
11
    {
12
        parent::__construct();
13
    }
14
15
    /**
16
     * @param string $name
17
     * @param array $signers
18
     * @param string $file
19
     * @return $this
20
     */
21
    public function createDocument(string $name, array $signers, string $file): Autentique
22
    {
23
        $data["query"] = 'mutation CreateDocumentMutation($document: DocumentInput!, $signers: [SignerInput!]!, $file: Upload!) {createDocument(sandbox: '.($this->devMode ? 'true' : 'false').', document: $document, signers: $signers, file: $file) {id name refusable sortable created_at signatures { public_id name email created_at action { name } link { short_link } user { id name email }}}}';
0 ignored issues
show
Comprehensibility Best Practice introduced by
$data was never initialized. Although not strictly required by PHP, it is generally a good practice to add $data = array(); before regardless.
Loading history...
24
        $data["variables"] = [
25
            "document" => ["name" => $name],
26
            "signers" => $signers,
27
            "file" => null
28
        ];
29
30
        $this->data->operations = json_encode($data);
31
        $this->data->map = '{"file": ["variables.file"]}';
32
        $this->data->file = new CURLFile($file);
33
34
        $this->execute(false);
35
        return $this;
36
    }
37
38
    /**
39
     * @param string $documentId
40
     * @return object
41
     */
42
    public function document(string $documentId): object
43
    {
44
        $this->data->query = "query { document(id: \"{$documentId}\") { id name refusable sortable created_at files { original signed } signatures { public_id name email created_at action { name } link { short_link } user { id name email } email_events { sent opened delivered refused reason } viewed { ...event } signed { ...event } rejected { ...event } } } } fragment event on Event { ipv4 ipv6 reason created_at geolocation { country countryISO state stateISO city zipcode latitude longitude } }";
45
        $this->execute();
46
        return $this->callback();
47
    }
48
49
    /**
50
     * @param int|null $limit
51
     * @return object
52
     */
53
    public function documents(?int $limit = null): object
54
    {
55
        $limit = empty($limit) ? 60 : $limit;
56
        $this->data->query = "query { documents(limit: {$limit}, page: 1) { total data { id name refusable sortable created_at signatures { public_id name email created_at action { name } link { short_link } user { id name email } viewed { created_at } signed { created_at } rejected { created_at } } files { original signed } } } }";
57
        $this->execute();
58
        return $this->callback();
59
    }
60
61
    /**
62
     * @param string $documentId
63
     * @return $this
64
     */
65
    public function deleteDocument(string $documentId): Autentique
66
    {
67
        $this->data->query = "mutation { deleteDocument(id: \"{$documentId}\") }";
68
        $this->execute();
69
        return $this;
70
    }
71
72
    /**
73
     * @param string $document
74
     * @return $this
75
     */
76
    public function signDocument(string $document): Autentique
77
    {
78
        $this->data->query = "mutation { signDocument(id: \"{$document}\") }";
79
        $this->execute();
80
        return $this;
81
    }
82
83
}