Skip to content

Commit 237a949

Browse files
committed
updated change log
1 parent d516f00 commit 237a949

File tree

5 files changed

+136
-82
lines changed

5 files changed

+136
-82
lines changed

changelog.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -386,4 +386,14 @@ Where $behavior is either rename or replace
386386

387387
### Updated
388388

389-
- Updated contacts get method to use pagination of the contacts. Sets default per page to 25 contacts
389+
- Updated contacts get method to use pagination of the contacts. Sets default per page to 25 contacts
390+
391+
## 3.2.4
392+
393+
### Added
394+
395+
- Added TaskLists resource class for working with task lists
396+
397+
### Updated
398+
399+
- Updated Tasks resource class for working with tasks

src/MsGraph.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
use Dcblogdev\MsGraph\Resources\Contacts;
1212
use Dcblogdev\MsGraph\Resources\Emails;
1313
use Dcblogdev\MsGraph\Resources\Files;
14-
use Dcblogdev\MsGraph\Resources\Tasks;
14+
use Dcblogdev\MsGraph\Resources\Tasks\TaskLists;
15+
use Dcblogdev\MsGraph\Resources\Tasks\Tasks;
1516
use Exception;
1617
use GuzzleHttp\Client;
1718
use GuzzleHttp\Exception\ClientException;
@@ -21,8 +22,6 @@
2122
use League\OAuth2\Client\Provider\Exception\IdentityProviderException;
2223
use League\OAuth2\Client\Provider\GenericProvider;
2324

24-
use function PHPUnit\Framework\throwException;
25-
2625
class MsGraph
2726
{
2827
public function contacts()
@@ -40,6 +39,11 @@ public function files()
4039
return new Files();
4140
}
4241

42+
public function tasklists()
43+
{
44+
return new TaskLists();
45+
}
46+
4347
public function tasks()
4448
{
4549
return new Tasks();

src/Resources/Tasks.php

Lines changed: 0 additions & 78 deletions
This file was deleted.

src/Resources/Tasks/TaskLists.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?php
2+
3+
namespace Dcblogdev\MsGraph\Resources\Tasks;
4+
5+
use Dcblogdev\MsGraph\Facades\MsGraph;
6+
7+
class TaskLists extends MsGraph
8+
{
9+
public function get(array $params = [])
10+
{
11+
$params = http_build_query($params);
12+
13+
return MsGraph::get('me/todo/lists?'.$params);
14+
}
15+
16+
public function find(string $listId)
17+
{
18+
return MsGraph::get("me/todo/lists/$listId");
19+
}
20+
21+
public function store(string $name)
22+
{
23+
return MsGraph::post("me/todo/lists", [
24+
'displayName' => $name
25+
]);
26+
}
27+
28+
public function update(string $listId, string $name)
29+
{
30+
return MsGraph::patch("me/todo/lists/$listId", [
31+
'displayName' => $name
32+
]);
33+
}
34+
35+
public function delete(string $listId)
36+
{
37+
return MsGraph::delete("me/todo/lists/$listId");
38+
}
39+
}

src/Resources/Tasks/Tasks.php

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?php
2+
3+
namespace Dcblogdev\MsGraph\Resources\Tasks;
4+
5+
use Dcblogdev\MsGraph\Facades\MsGraph;
6+
use Dcblogdev\MsGraph\Helpers\Paginator;
7+
8+
class Tasks extends MsGraph
9+
{
10+
public function get($taskListId, $params = [], $perPage = 25, $instance = 'p')
11+
{
12+
$params = $this->getParams($params, $perPage, $instance);
13+
14+
$filteredParams = $params;
15+
unset($filteredParams['$top']);
16+
unset($filteredParams['$skip']);
17+
18+
$tasks = MsGraph::get("me/todo/lists/$taskListId/tasks?".http_build_query($params));
19+
$filteredTasks = MsGraph::get("me/todo/lists/$taskListId/tasks?".http_build_query($filteredParams));
20+
$total = count($filteredTasks['value']);
21+
$pages = new Paginator($perPage, $instance);
22+
$pages->setTotal($total);
23+
24+
return [
25+
'tasks' => $tasks,
26+
'total' => $total,
27+
'links' => $pages->page_links(),
28+
'links_array' => $pages->page_links_array(),
29+
];
30+
}
31+
32+
public function find($taskListId, $taskId)
33+
{
34+
return MsGraph::get("me/todo/lists/$taskListId/tasks/$taskId");
35+
}
36+
37+
public function store($taskListId, array $data)
38+
{
39+
return MsGraph::post("me/todo/lists/$taskListId/tasks", $data);
40+
}
41+
42+
public function update($taskListId, $taskId, array $data)
43+
{
44+
return MsGraph::patch("me/todo/lists/$taskListId/tasks/$taskId", $data);
45+
}
46+
47+
public function delete($taskListId, $taskId)
48+
{
49+
return MsGraph::delete("me/todo/lists/$taskListId/tasks/$taskId");
50+
}
51+
52+
protected function getParams($params, $perPage, $instance)
53+
{
54+
$skip = $params['skip'] ?? 0;
55+
$page = request($instance, $skip);
56+
if ($page > 0) {
57+
$page--;
58+
}
59+
60+
if ($params == []) {
61+
$params = [
62+
'$orderby' => 'createdDateTime',
63+
'$top' => $perPage,
64+
'$skip' => $page,
65+
];
66+
} else {
67+
//ensure $top, $skip and $count are part of params
68+
if (!in_array('$top', $params)) {
69+
$params['$top'] = $perPage;
70+
}
71+
72+
if (!in_array('$skip', $params)) {
73+
$params['$skip'] = $page;
74+
}
75+
}
76+
77+
return $params;
78+
}
79+
}

0 commit comments

Comments
 (0)