-
Notifications
You must be signed in to change notification settings - Fork 0
/
class-meistertask.php
130 lines (108 loc) · 3.29 KB
/
class-meistertask.php
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
<?php
class MeisterTask {
/*
* Meistertask API key
*/
protected $secretKey;
/*
* Meistertask Tasks Endpoint
*/
protected $endpointTasks;
/*
* Meistertask Projects Endpoint
*/
protected $endpointProjects;
/*
* Meistertask Sections Endpoint
*/
protected $endpointSections;
/*
* Meistertask Project ID
* ID of a project board
*/
protected $projectID;
/*
* Meistertask Section ID
* ID of a section on a project board
*/
protected $sectionID;
public function __contruct () {
$this->endpointTasks = 'https://www.meistertask.com/api/tasks';
$this->endpointProjects = 'https://www.meistertask.com/api/projects';
$this->endpointSections = 'https://www.meistertask.com/api/sections';
}
/*
* Set the meistertask api key
*
* @access public
* @param string private api key
*/
private function setSecretKey($key) {
$this->secretKey = $key;
}
/*
* Set the id of the Meistertask project
*
* @access public
* @param string id of the project board
*/
public function setProjectID($id) {
$this->projectID = $id;
}
/*
* Set the id of the project section
*
* @access public
* @param string id of the section
*/
public function setSectionID($id) {
$this->projectID = $id;
}
/*
* Creates a task in selected board & section
*
* @access public
* @param string $name the task title
* @param string $notes task notes/description
* @param int $assignedMemberID the id of the team member to assign this task
* @param array $labels task labels ids you want to apply to the task
* @param int $status the status of the task (1=open, 2=completed, 8=trashed, 18=completed_archived)
*/
public function createTask($name, $notes, $assignedMemberID = '', $labels = array(), $status = 1) {
$data = array(
'name' => $name,
'notes' => $notes,
'assigned_to_id' => $assignedMemberID,
'label_ids' => $labels,
'status' => $status
);
$payload = json_encode($data);
$postURL = $this->endpointSections . '/' . $this->sectionID . '/tasks';
// Prepare new cURL resource
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $postURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
// Set HTTP Header for POST request
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($payload),
'Authorization: Bearer ' . $this->secretKey
));
// $output contains the output string
$result = curl_exec($ch);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$output = '';
if ($statusCode != 200) {
throw new Exception('Error: ' . $result->error->message);
} else {
$output = 'Task was successfully created';
}
// Close cURL session handle
curl_close($ch);
return $output;
}
}
?>