Example #1
0
    async def post(self):
        request_data = await self.request.content.read()
        request_data = json.loads(request_data)
        try:
            request_data["user_id"] = 1
            playlist = Playlist(**request_data)
        except Exception as e:
            return web.json_response({"message": f"invalid request: {e}"},
                                     status=400)

        playlist.id = self.extract_id(playlist.url)

        exists_playlist = await self.collection.find_one({"id": playlist.id})
        if not exists_playlist:
            await self.collection.insert_one(playlist.dict())

        await self.publish_message(playlist)
        return web.json_response(playlist.dict(), status=201)