assureId(); $param_types = array( ); $enums = array( ); $request = new ApiRequest( $this->api, $this->data['id'], RequestInterface::METHOD_GET, '/insights', new AdsInsights(), 'EDGE', AdsInsights::getFieldsEnum()->getValues(), new TypeChecker($param_types, $enums) ); $request->addParams($params); $request->addFields($fields); return $pending ? $request : $request->execute(); } public function getSelf(array $fields = array(), array $params = array(), $pending = false) { $this->assureId(); $param_types = array( ); $enums = array( ); $request = new ApiRequest( $this->api, $this->data['id'], RequestInterface::METHOD_GET, '/', new AdReportRun(), 'NODE', AdReportRun::getFieldsEnum()->getValues(), new TypeChecker($param_types, $enums) ); $request->addParams($params); $request->addFields($fields); return $pending ? $request : $request->execute(); } public function setDataTrigger(array $data) { if (array_key_exists('report_run_id', $data)) { $this->data['id'] = $data['report_run_id']; } } public function isComplete() { return $this->{AdReportRunFields::ASYNC_PERCENT_COMPLETION} === 100 && $this->{AdReportRunFields::ASYNC_STATUS} === 'Job Completed'; } }