23 lines
827 B
Python
23 lines
827 B
Python
from typing import List, Optional
|
|
from repos.dao import DAO
|
|
from models.Idea import Idea
|
|
|
|
class IdeaService:
|
|
def __init__(self, dao: DAO):
|
|
self.dao = dao
|
|
|
|
async def create_idea(self, name: str, project_id: str, user_id: str) -> Idea:
|
|
idea = Idea(name=name, project_id=project_id, created_by=user_id)
|
|
idea_id = await self.dao.ideas.create_idea(idea)
|
|
idea.id = idea_id
|
|
return idea
|
|
|
|
async def get_ideas(self, project_id: str, limit: int = 20, offset: int = 0) -> List[Idea]:
|
|
return await self.dao.ideas.get_ideas(project_id, limit, offset)
|
|
|
|
async def get_idea(self, idea_id: str) -> Optional[Idea]:
|
|
return await self.dao.ideas.get_idea(idea_id)
|
|
|
|
async def delete_idea(self, idea_id: str) -> bool:
|
|
return await self.dao.ideas.delete_idea(idea_id)
|