/** * @param stdClass|array $api_data * * @return Resource */ public static function fromApi($api_data) { if (!is_array($api_data)) { $api_data = (array) $api_data; } $availability = null; if (!empty($api_data['availability'])) { $availability = array(); foreach ($api_data['availability'] as $av_uuid => $av) { $availability[$av_uuid] = Vevent::fromApi($av); } } $external_id = empty($api_data['external_id']) ? null : $api_data['external_id']; return new self($api_data['uuid'], $api_data['title'], $api_data['location'], $api_data['groups'], $availability, $external_id); }
/** * Takes event data from api and creates new self. * * @param stdClass|array $api_data * Data returned from api. * * @return Event * * @todo Resource_ids come back as classes which should really be resource * properties of an event. However since we don't yet have a 'teaser' * schema, it will have to wait. */ public static function fromApi($api_data) { if (!is_array($api_data)) { $api_data = (array) $api_data; } $date_time = Vevent::fromApi($api_data['date_time']); $competitors = empty($api_data['competitors']) ? null : $api_data['competitors']; $external_id = empty($api_data['external_id']) ? null : $api_data['external_id']; $resource_ids = null; if (!empty($api_data['resource_ids'])) { $resource_ids = array(); foreach ($api_data['resource_ids'] as $rid) { $resource_ids[] = $rid->uuid; } } return new self($api_data['uuid'], $api_data['groups'], $api_data['title'], $api_data['description'], $date_time, $api_data['category'], $resource_ids, $competitors, $api_data['published'], $external_id); }