<?php
namespace App\Library;
use App\Library\GraphGeneric;
use Microsoft\Graph\Model\Message;
use Microsoft\Graph\Model\MailFolder;
use Microsoft\Graph\Model\FileAttachment;
use Microsoft\Graph\Model\ItemAttachment;
require_once 'GraphGeneric.php';
class GraphOutlook extends GraphGeneric
{
public function getMailFolders()
{
return $this->appClient->createCollectionRequest('GET', "/users/sauvegarde@cco-info.fr/mailFolders")
->setReturnType(MailFolder::class)
->execute();
}
public function getChildFolders(String $folderId)
{
return $this->appClient->createCollectionRequest('GET', "/users/sauvegarde@cco-info.fr/mailFolders/" . $folderId . "/childFolders")
->setReturnType(MailFolder::class)
->execute();
}
public function listMessages(int $quantity = 10, String $readed = "false")
{
return $this->appClient->createCollectionRequest('GET', '/users/sauvegarde@cco-info.fr/messages?$select=sender,id,subject,isRead,hasAttachments,sentDateTime,body&top=' . $quantity)
->setReturnType(Message::class)
->execute();
}
public function getMessage(String $folderId, String $messageId)
{
return $this->appClient->createCollectionRequest('GET', '/users/sauvegarde@cco-info.fr/mailFolders/' . $folderId . '/messages/' . $messageId)
->setReturnType(Message::class)
->execute();
}
public function listFolderMessages(int $quantity = 10, String $folderId)
{
return $this->appClient->createCollectionRequest('GET', '/users/sauvegarde@cco-info.fr/mailFolders/' . $folderId . '/messages?$select=sender,id,subject,isRead,hasAttachments,sentDateTime,body&top=' . $quantity)
->setReturnType(Message::class)
->execute();
}
public function getMessageAttachments(string $id)
{
return $this->appClient->createCollectionRequest('GET', "/users/sauvegarde@cco-info.fr/messages/" . $id . '/attachments')
->setReturnType(FileAttachment::class)
->execute();
}
public function moveMailToFolder(string $messageId, string $folderId)
{
return $this->appClient->createRequest('POST', "/users/sauvegarde@cco-info.fr/messages/" . $messageId . '/move')
->addHeaders(["Prefer" => 'IdType="ImmutableId"'])
->attachBody(["destinationId" => $folderId])
->setReturnType(Message::class)
->execute();
}
}