• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/googleapitransport.php
  • Класс: BitrixCalendarSyncGoogleApiTransport
  • Вызов: GoogleApiTransport::prepareMultipartMixed
protected function prepareMultipartMixed($postData, $calendarId, $params)
{
	if (is_array($postData))
	{
		$boundary = 'BXC'.md5(rand().time());
		$this->client->setHeader('Content-type', 'multipart/mixed; boundary='.$boundary);

		$data = '';

		foreach ($postData as $key => $value)
		{
			$data .= '--'.$boundary."rn";

			if (is_array($value))
			{
				$contentId = '';

				if (is_array($value))
				{
					$data .= 'Content-Type: application/http'."rn";
					$data .= 'Content-ID: '.$contentId."rnrn";

					if (!empty($value['gEventId']))
					{
						$data .= $params['method'].' /calendar/v3/calendars/'.$calendarId.'/events/'.$value['gEventId']."rn";
					}
					else
					{
						$data .= 'POST /calendar/v3/calendars/'.$calendarId.'/events'."rn";
					}

					$data .= 'Content-type: application/json'."rn";

					$data .= 'Content-Length: '.mb_strlen($value['partBody'])."rnrn";
					$data .= $value['partBody'];
					$data .= "rnrn";
				}
			}
		}

		$data .= '--'.$boundary."--rn";
		$postData = $data;
	}

	return $postData;
}