コード例 #1
0
ファイル: ItemsModelTest.php プロジェクト: holgergr/api
 public function testAddNew()
 {
     $model = new Items($this->getEntityManagerMock());
     $item = new Item();
     $item->setPrice(22)->setDescription('Description')->setName('name');
     $apiResponse = new ApiResponse();
     $model->saveItem($item, $apiResponse);
     $response = $apiResponse->getResponse();
     $this->assertInstanceOf(JsonResponse::class, $response);
     $this->assertSame(Response::HTTP_CREATED, $response->getStatusCode());
 }
コード例 #2
0
ファイル: Items.php プロジェクト: holgergr/api
 /**
  * @param Item $item
  * @param ApiResponse $response
  * @return Item|null
  */
 public function saveItem(Item $item, ApiResponse $response)
 {
     if (null === $item->getId()) {
         $item = $this->em->getRepository('RestApiBundle:Item')->add($item);
         $response->setStatusCode(Response::HTTP_CREATED);
     } else {
         $item = $this->em->getRepository('RestApiBundle:Item')->update($item);
         $response->setStatusCode(Response::HTTP_OK);
     }
     $response->setId($item->getId());
     return $item;
 }
コード例 #3
0
ファイル: ItemTransformer.php プロジェクト: holgergr/api
 /**
  * @param string $rawItem
  * @param null $id
  * @return Item
  * @throws ApiTransformationException
  */
 public function transform($rawItem, $id = null)
 {
     $item = new Item();
     $item->setId($id);
     foreach (json_decode($rawItem) as $key => $value) {
         $setter = 'set' . ucfirst($key);
         if (!method_exists($item, $setter)) {
             throw new ApiTransformationException();
         }
         $item->{$setter}($value);
     }
     return $item;
 }