File size: 3,295 Bytes
07c3cdd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?php
namespace ProcessMaker\Services\Api;

use \ProcessMaker\Services\Api;
use \Luracast\Restler\RestException;


/**
 * GmailIntegration Api Controller
 *
 *
 * @protected
 */
class GmailIntegration extends Api
{
    /**
     * Get User by usr_gmail
     * 
     * @param string $usr_gmail {@from path}
     *
     *
     * @url GET /userexist/:usr_gmail
     *
     */
    public function doGetUserbyEmail($usr_gmail)
    {
        try {
            $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
            $response = $Pmgmail->getUserByEmail($usr_gmail);
            return $response;
        } catch (\Exception $e) {
            throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
        }
    }
 
     /**
     * Get Application by app_uid
     * 
     * @param string $app_uid {@from path}
     *
     *
     * @url GET /application/:app_uid
     *
     */
    public function doGetApplication($app_uid)
    {
        try {
            $Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
            $response = $Pmgmail->getDraftApp($app_uid);
            return $response;
        } catch (\Exception $e) {
            throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
        }
    }
    
    /**
     * Send Email
     *
     * @param string $app_uid {@from path}
     * @param string $mail {@from path}
     * @param string $index {@from path}
     *
     *
     * @url POST /sendEmail/:app_uid/to/:mail/index/:index
     *
     */
    public function doPostSendMail($app_uid, $mail, $index)
    {
    	try {
    		$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
    		$response = $Pmgmail->sendGmail($app_uid, $mail, $index);
    		return $response;
    	} catch (\Exception $e) {
    		throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
    	}
    }   
    
    /**
     * Get if the license has the gmail integration feature
     *
     *
     * @url GET /verifyGmailfeature
     *
     */
    public function doGetVerifyGmailFeature()
    {
    	try {
    		$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
    		$response = $Pmgmail->hasGmailFeature();
    		return $response;
    	} catch (\Exception $e) {
    		throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
    	}
    }


    /**
     * Get the default 'email from account' that is used to send emails in the server email in PM
     *
     *
     * @url GET /current-email-account
     *
     */
    public function doGetEmailAccount()
    {
    	try {
    		$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
    		$response = $Pmgmail->emailAccount();
    		return $response;
    	} catch (\Exception $e) {
    		throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
    	}
    }
    
    /**
     * End Point to delete Labels in an uninstalation of the extension
     *
     * @param string $mail {@from path}
     *
     *
     * @url POST /deleteLabels/:mail
     *
     */
    public function doPostDeleteLabels($mail)
    {
    	try {
    		$Pmgmail = new \ProcessMaker\BusinessModel\Pmgmail();
    		$response = $Pmgmail->deleteLabels($mail);
    		return $response;
    	} catch (\Exception $e) {
    		throw (new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()));
    	}
    }

}