forked from smartsendercommunity/pipedrive
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask.php
More file actions
123 lines (116 loc) · 4.29 KB
/
task.php
File metadata and controls
123 lines (116 loc) · 4.29 KB
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
<?php
include('config.php');
$input = json_decode(file_get_contents("php://input"), true);
$log["url"] = $url;
if ($input["userId"] == NULL) {
$result["state"] = false;
$result["error"]["message"][] = "'userId' is missing";
} else {
if (file_exists('pdData/users.json')) {
$users = json_decode(file_get_contents('pdData/users.json'), true);
$contactId = $users[$input['userId']];
}
if ($contactId == NULL) {
$result["state"] = false;
$result["error"]["message"][] = "the contact was not created by this integration";
}
}
if ($result["state"] === false) {
echo json_encode($result);
exit;
} else {
$result["state"] = true;
}
if ($input["title"] != NULL) {
$task["subject"] = $input["title"];
}
if ($input["time"] != NULL) {
$time = strtotime($input["time"]);
date_default_timezone_set('UTC');
$task["due_date"] = date("Y-m-d", $time);
$task["due_time"] = date("G:i", $time);
}
if ($input["duration"] != NULL) {
$task["duration"] = $input["duration"];
}
if ($input["leadId"] != NULL) {
$task["lead_id"] = $input["leadId"];
}
if ($input["dealId"] != NULL) {
$task["deal_id"] = $input["dealId"];
}
$task["person_id"] = $contactId;
if ($input["text"] != NULL) {
$task["note"] = $input["text"];
}
if ($input["location"] != NULL) {
$task["location"] = $input["location"];
}
if ($input["description"] != NULL) {
$task["public_description"] = $input["description"];
}
if ($input["type"] == "call" || $input["type"] == "meeting" || $input["type"] == "task" || $input["type"] == "deadline" || $input["type"] == "email" || $input["type"] == "lunch") {
$task["type"] = $input["type"];
} else if ($input["type"] != NULL) {
// Определение типа задачи
$getType = json_decode(send_request("https://api.pipedrive.com/v1/activityTypes?api_token=".$pdKey), true);
if ($getType["success"] !== true) {
sleep(1);
$getType = json_decode(send_request("https://api.pipedrive.com/v1/activityTypes?api_token=".$pdKey), true);
}
if ($getType["data"] != NULL && is_array($getType["data"])) {
foreach ($getType["data"] as $oneType) {
if ($oneType["name"] == $input["type"]) {
$task["type"] = $oneType["key_string"];
break;
}
}
}
}
if ($input["done"] == true) {
$task["done"] = 1;
}
if ($input["taskId"] == NULL) {
$createTask = json_decode(send_request("https://api.pipedrive.com/v1/activities?api_token=".$pdKey, [], "POST", $task), true);
if ($createTask["success"] === false) {
sleep(1);
$createTask = json_decode(send_request("https://api.pipedrive.com/v1/activities?api_token=".$pdKey, [], "POST", $task), true);
}
if ($createTask["data"]["id"] != NULL) {
$taskId = $createTask["data"]["id"];
$logDescription[] = "Создана задача: ".$taskId;
$result["taskId"] = $taskId;
$result["action"] = "create";
$result["result"] = $createTask;
} else {
$logData["state"] = "false";
$logDescription[] = "Ошибка создания задачи";
$result["state"] = false;
$result["result"] = $createTask;
}
$log["task"]["action"] = "create";
$log["task"]["send"] = $task;
$log["task"]["result"] = $createTask;
} else {
$createTask = json_decode(send_request("https://api.pipedrive.com/v1/activities/".$input["taskId"]."?api_token=".$pdKey, [], "PUT", $task), true);
if ($createTask["success"] === false) {
sleep(1);
$createTask = json_decode(send_request("https://api.pipedrive.com/v1/activities/".$input["taskId"]."?api_token=".$pdKey, [], "PUT", $task), true);
}
if ($createTask["data"]["id"] != NULL) {
$taskId = $createTask["data"]["id"];
$logDescription[] = "Обновлена задача: ".$taskId;
$result["taskId"] = $taskId;
$result["action"] = "update";
$result["result"] = $createTask;
} else {
$logData["state"] = "false";
$logDescription[] = "Ошибка обновления задачи";
$result["state"] = false;
$result["result"] = $createTask;
}
$log["task"]["action"] = "update";
$log["task"]["send"] = $task;
$log["task"]["result"] = $createTask;
}
echo json_encode($result);