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)