/** * * @param \MailQ\Request $request * @return \MailQ\Response */ public function sendRequest(Request $request) { $ch = curl_init(); $curlHeaders = $this->createCurlHeaders(array_merge($request->getHeaders(), $this->createDefaultHeaders())); $url = $this->baseUrl . '/companies/' . $request->getPath(); if ($request->hasParameters()) { $url .= '?' . http_build_query($request->getParameters()); } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HEADERFUNCTION, [$this, 'storeHeader']); curl_setopt($ch, CURLOPT_HTTPHEADER, $curlHeaders); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->connectionTimeout); curl_setopt($ch, CURLOPT_TIMEOUT, $this->timeout); if ($request->hasContent()) { curl_setopt($ch, CURLOPT_POSTFIELDS, $request->getContent()); } if ($request->isPost()) { curl_setopt($ch, CURLOPT_POST, true); } elseif ($request->isDelete()) { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, Request::HTTP_METHOD_DELETE); } elseif ($request->isPut()) { curl_setopt($ch, CURLOPT_CUSTOMREQUEST, Request::HTTP_METHOD_PUT); } $responseData = curl_exec($ch); $response = $this->createResponse($ch, $responseData); curl_close($ch); return $response; }
/** * * @return string API key */ public function regenerateApiKey() { $request = Request::put("{$this->getCompanyId()}"); $response = $this->getConnector()->sendRequest($request); $apiKeyEntity = new ApiKeyEntity($response->getContent()); return $apiKeyEntity->getApiKey(); }
/** * * @param EmailAddressesEntity $emails */ public function unsubscribe(EmailAddressesEntity $emails) { $request = Request::post("{$this->getCompanyId()}/unsubscribers/"); $data = $emails->toArray(); $json = Json::encode($data['emails']); $request->setContent($json); $this->getConnector()->sendRequest($request); }
/** * * @param int $userId * @return UserEntity */ public function getUser($userId) { $request = Request::get("{$this->getCompanyId()}/users/{$userId}"); $response = $this->getConnector()->sendRequest($request); return new UserEntity($response->getContent()); }
/** * @param int $senderEmailId * @return SenderEmailEntity */ public function getSenderEmail($senderEmailId) { $request = Request::get("{$this->getCompanyId()}/sender-emails/{$senderEmailId}"); $response = $this->getConnector()->sendRequest($request); return new SenderEmailEntity($response->getContent()); }
/** * * @param int $notificationId * @return NotificationEntity */ public function getNotification($notificationId) { $request = Request::get("{$this->getCompanyId()}/notifications/{$notificationId}"); $response = $this->getConnector()->sendRequest($request); return new NotificationEntity($response->getContent()); }
/** * @param $campaignId * @return CampaignEntity */ public function getCampaign($campaignId) { $request = Request::put("{$this->getCompanyId()}/campaigns/{$campaignId}"); $response = $this->getConnector()->sendRequest($request); return new CampaignEntity($response->getContent()); }
private static function createRequest($method, $path, $parameters = null, $headers = null, Entities\BaseEntity $content = null) { $request = new Request($method, $path); $request->setHeaders($headers); $request->setParameters($parameters); $request->setContent($content); return $request; }
/** * * @param int $logMessageId * @return LogMessageEntity */ public function getLogMessage($logMessageId) { $request = Request::get("{$this->getCompanyId()}/log-messages/{$logMessageId}"); $response = $this->getConnector()->sendRequest($request); return new LogMessageEntity($response->getContent()); }
/** * * @param int $recipientsListId * @return RecipientsListEntity */ public function getRecipientsList($recipientsListId) { $request = Request::get("{$this->getCompanyId()}/recipients-lists/{$recipientsListId}"); $response = $this->getConnector()->sendRequest($request); return new RecipientsListEntity($response->getContent()); }