Exemplo n.º 1
0
    async def patch(self, id=None, *args, **kwargs) -> Response:
        if not id:
            raise TeamNotFound
        team = Team.get_item(id)
        if not team:
            raise TeamNotFound

        json_body = await self.deserialize_body(partial=True)
        name = json_body.get('name')
        if name:
            team.name = name

        user_ids = json_body.get('users')
        if user_ids:
            users = []
            for user_id in user_ids:
                user = User.get_item(int(user_id))
                if not user:
                    raise UserNotFound
                users.append(user)
            team.users = users

        team.save()

        return await self.to_response(await self.serialize(data=team))
Exemplo n.º 2
0
    async def get(self, id=None, *args, **kwargs) -> Response:
        if not id:
            raise TeamNotFound
        team = Team.get_item(id)
        if not team:
            raise TeamNotFound

        return await self.to_response(await self.serialize(data=team))
Exemplo n.º 3
0
    async def delete(self, id=None, *args, **kwargs) -> Response:
        if not id:
            raise TeamNotFound
        team = Team.get_item(id)
        if not team:
            raise TeamNotFound

        team.delete()

        return JSONAPIResponse(status_code=204)
Exemplo n.º 4
0
 async def delete(self, parent_id: str, *args, **kwargs) -> Response:
     team = Team.get_item(int(parent_id))
     if not team:
         raise TeamNotFound
     user_ids = await self.deserialize_ids()
     if not user_ids:
         user_ids = []
     users = []
     for user in team.users:
         if str(user.id) not in user_ids:
             users.append(user)
     team.users = users
     team.save()
     return await self.to_response(await self.serialize(data=team))
Exemplo n.º 5
0
    async def post(self, parent_id: str, *args, **kwargs) -> Response:
        team = Team.get_item(int(parent_id))
        if not team:
            raise TeamNotFound

        user_ids = await self.deserialize_ids()
        if not user_ids:
            users = []
        else:
            users = team.users
            for user_id in user_ids:
                user = User.get_item(int(user_id))
                if not user:
                    raise UserNotFound
                users.append(user)
        team.users = users
        team.save()
        return await self.to_response(await self.serialize(data=team))
Exemplo n.º 6
0
 async def get_related(self,
                       id: Any,
                       relationship: str,
                       related_id: Any = None,
                       *args,
                       **kwargs) -> Response:
     team = Team.get_item(id)
     if not team:
         raise TeamNotFound
     if relationship == 'users':
         if not related_id:
             return await self.to_response(await self.serialize_related(
                 team.users, many=True))
         else:
             filtered_users = list(
                 filter(lambda user: user.id == related_id, team.users))
             if len(filtered_users) == 1:
                 return await self.to_response(await self.serialize_related(
                     filtered_users[0]))
     raise HTTPException(status_code=404)
Exemplo n.º 7
0
 async def get(self, parent_id: str, *args, **kwargs) -> Response:
     team = Team.get_item(int(parent_id))
     if not team:
         raise TeamNotFound
     return await self.to_response(await self.serialize(data=team))