public function findAll(UsersEntity $user)
 {
     $hydrator = new ClassMethods();
     $hydrator->addStrategy('items', new OrderItemHydratorStrategy(new ClassMethods()));
     $res = [];
     switch ($user->getRole()) {
         case 'administrador':
             $orders = $this->tableGateway->select();
             break;
         case 'salesman':
             $orders = $this->tableGateway->select(['user_id' => $user->getId()]);
             break;
         case 'guest':
         default:
             return new ApiProblem(405, "Guests can't get orders list.");
             break;
     }
     foreach ($orders as $order) {
         $items = $this->orderItemTableGateway->select(['order_id' => $order->getId()]);
         foreach ($items as $item) {
             $order->addItem($item);
         }
         $data = $hydrator->extract($order);
         $res[] = $data;
     }
     $arrayAdapter = new ArrayAdapter($res);
     $ordersCollection = new OrdersCollection($arrayAdapter);
     return $ordersCollection;
 }
Example #2
0
 public function getUserRole()
 {
     return $this->user->getRole();
 }
 /**
  * 
  * @param UsersEntity $object
  */
 public function extract($object)
 {
     return ['id' => $object->getId(), 'username' => $object->getUsername(), 'password' => $object->getPassword(), 'first_name' => $object->getFirstName(), 'last_name' => $object->getLastName(), 'role' => $object->getRole()];
 }