/** * @Route("/goods_status/{_format}", name="api_goodsStatus_list", defaults={"_format"="json"}, options={"expose"=true}) * @Method("GET") * @ApiDoc( * resource=true, * description="取得所有商品狀態的資料" * ) */ public function listAction(Request $request, $_format) { $em = $this->getDoctrine()->getManager(); $goodsStatuses = $em->getRepository('WoojinGoodsBundle:GoodsStatus')->findAll(); $serializer = \JMS\Serializer\SerializerBuilder::create()->build(); $jsonGoodsStatuss = $serializer->serialize($goodsStatuses, $_format); $responseHandler = new ResponseHandler(); return $responseHandler->getETag($request, $jsonGoodsStatuss, $_format); }
/** * @Route("/pattern/{_format}", name="api_pattern_list", defaults={"_format"="json"}, options={"expose"=true}) * @Method("GET") * @ApiDoc( * resource=true, * description="取得所有款式的資料" * ) */ public function listAction(Request $request, $_format) { $em = $this->getDoctrine()->getManager(); $patterns = $em->getRepository('WoojinGoodsBundle:Pattern')->findBy(array(), array('name' => 'ASC')); $serializer = \JMS\Serializer\SerializerBuilder::create()->build(); $jsonPatterns = $serializer->serialize($patterns, $_format); $responseHandler = new ResponseHandler(); return $responseHandler->getETag($request, $jsonPatterns, $_format); }
/** * @Route("/activity/{_format}", name="api_activity_list", defaults={"_format"="json"}, options={"expose"=true}) * @Method("GET") * @ApiDoc( * resource=true, * description="取得所有活動的資料" * ) */ public function listAction(Request $request, $_format) { $em = $this->getDoctrine()->getManager(); $activitys = $em->getRepository('WoojinStoreBundle:Activity')->findAll(); $serializer = \JMS\Serializer\SerializerBuilder::create()->build(); $jsonActivitys = $serializer->serialize($activitys, $_format); $responseHandler = new ResponseHandler(); return $responseHandler->getETag($request, $jsonActivitys, $_format); }
/** * @Route("/behalf/{id}/{_format}", requirements={"id"="\d+"}, defaults={"_format"="json"}, name="api_behalf_show", options={"expose"=true}) * @ParamConverter("behalf", class="WoojinGoodsBundle:Behalf") * @Method("GET") * * @ApiDoc( * resource=true, * description="取得代購資訊,ETag cache", * requirements={ * { * "name"="id", * "requirement"="\d+", * "dataType"="integer", * "required"=true, * "description"="Entity Behalf's id" * }, * { * "name"="_format", * "dataType"="string", * "required"=false, * "description"="回傳的格式,支援 json, xml, html" * } * } * ) */ public function showAction(Request $request, $behalf, $_format) { if ($behalf->getCustom()->getId() !== $this->get('session.custom')->current()->getId()) { throw new AccessDeniedHttpException('Not Your own behalf'); } if ($want = $behalf->getWant()) { $want->setCost(0); } if ($got = $behalf->getGot()) { $got->setCost(0); } $serializer = \JMS\Serializer\SerializerBuilder::create()->build(); $jsonBehalf = $serializer->serialize($behalf, $_format); $responseHandler = new ResponseHandler(); return $responseHandler->getETag($request, $jsonBehalf, $_format); }
/** * @Route("/goods_passport/multiSn/{longSn}/{_format}", defaults={"_format"="json"}, name="api_goodsPassport_show_byMultiSn", options={"expose"=true}) * @Method("GET") * * @ApiDoc( * resource=true, * description="輸入多筆產編取得商品資訊", * requirements={ * { * "name"="longSn", * "dataType"="string", * "required"=true, * "description"="Entity GoodsPassport's sn" * } * } * ) */ public function showByMultiSnAction(Request $request, $longSn, $_format) { $em = $this->getDoctrine()->getManager(); $qb = $em->createQueryBuilder(); $qb->select('g')->from('WoojinGoodsBundle:GoodsPassport', 'g')->where($qb->expr()->in('g.sn', explode('@', str_replace('%', '', $longSn))))->orderBy('g.id', 'DESC'); $products = $qb->getQuery()->getResult(); foreach ($products as $product) { $product->setCost(0); $product->setSn($product->getSn(true)); } $serializer = \JMS\Serializer\SerializerBuilder::create()->build(); $jsonProducts = $serializer->serialize($products, $_format); $responseHandler = new ResponseHandler(); return $responseHandler->getETag($request, $jsonProducts, $_format); }