public function testAllowsMultipleValuesPerKey() { $q = new Query(); $q->add('facet', 'size'); $q->add('facet', 'width'); $q->add('facet.field', 'foo'); // Use the duplicate aggregator $q->setAggregator($q::duplicateAggregator()); $this->assertEquals('facet=size&facet=width&facet.field=foo', (string) $q); }
/** * Authenticate with the server and retrieve an auth token. * * Currently implements Citrix's {@link https://developer.citrixonline.com/page/direct-login "Direct Login"} method. * * @param string $userId * @param string $password * @return \kenobi883\GoToMeeting\Models\Auth */ public function authenticate($userId, $password) { $url = "{$this->endpoint}/access_token"; $query = new Query(); $query->add('grant_type', 'password')->add('user_id', $userId)->add('password', $password)->add('client_id', $this->client->getApiKey()); $jsonBody = $this->client->sendRequest('GET', $url, $query, true); return new Auth($jsonBody); }
/** * @param string $name * @param mixed $value * * @return $this */ public function addQueryField($name, $value) { $this->query->add($name, $value); return $this; }
/** * Get attendees for the specified meeting instance key and date range. * * Instance keys may only be obtained for historical meetings. * * @param string $meetingInstanceKey * @param \DateTime $startDate * @param \DateTime $endDate * @return array includes `meetings` and `attendees` keys mapping to arrays of the Meeting and Attendee * instances returned from the API */ public function getAttendeesByMeeting($meetingInstanceKey, \DateTime $startDate, \DateTime $endDate) { $url = "{$this->endpoint}/{$meetingInstanceKey}/attendees"; $query = new Query(); $query->add('startDate', $startDate->format(MeetingService::DATE_FORMAT_INPUT))->add('endDate', $endDate->format(MeetingService::DATE_FORMAT_INPUT)); $jsonBody = $this->client->sendRequest('GET', $url, $query); $meetings = array(); $attendees = array(); foreach ($jsonBody as $meetingAttendee) { $meetings[] = new Meeting($meetingAttendee); $attendees[] = new Attendee($meetingAttendee); } return array('meetings' => $meetings, 'attendees' => $attendees); }
/** * Build an URL. * * @param string $baseUrl The base URL. * @param array $parameters Parameters for the URL. * @return string */ private function buildGETUrl($baseUrl, array $parameters) { $query = new Query(); foreach ($parameters as $key => $value) { $query->add($key, $value); } return $baseUrl . '?' . (string) $query; }