Ejemplo n.º 1
0
 /**
  * Function to find an instance of an Entity record
  *
  * @param  Trucker\Resource\Model $model       Model to use for URL generation etc.
  * @param  int           $id          The primary identifier value for the record
  * @param  array         $getParams   Array of GET parameters to pass
  * @return Trucker\Resource\Model              An instance of the entity requested
  */
 public function fetch($model, $id, $getParams = array())
 {
     $instance = null;
     //get a request object
     $request = RequestFactory::build();
     //init the request
     $request->createRequest(Config::get('request.base_uri'), UrlGenerator::getInstanceUri($model, [':' . $model->getIdentityProperty() => $id]), 'GET');
     //add auth if it is needed
     if ($auth = AuthFactory::build()) {
         $request->authenticate($auth);
     }
     //set any get parameters on the request
     $request->setGetParameters($getParams);
     //actually send the request
     $response = $request->sendRequest();
     if (!ResponseInterpreterFactory::build()->success($response)) {
         return null;
     }
     //kraft the response into an object to return
     $data = $response->parseResponseToData();
     $instance = new $model($data);
     //inflate the ID property that should be guarded
     $id = $instance->getIdentityProperty();
     if (array_key_exists($id, $data)) {
         $instance->{$id} = $data[$id];
     }
     return $instance;
 }
Ejemplo n.º 2
0
 public function testInstanceUpdateDeleteURIs()
 {
     $x = new User();
     $x->__set('id', 1234);
     $this->assertEquals('/users/:id', UrlGenerator::getInstanceUri($x));
     $this->assertEquals('/users/1234', UrlGenerator::getInstanceUri($x, [':id' => 1234]));
     $this->assertEquals('/users/1234', UrlGenerator::getUpdateUri($x, [':id' => 1234]));
     $this->assertEquals('/users/1234', UrlGenerator::getDeleteUri($x, [':id' => 1234]));
 }