File size: 1,072 Bytes
3253802
 
 
 
fcfe4b3
3253802
 
 
 
 
 
 
fcfe4b3
 
3253802
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from typing import Dict

from src.models import User
from src.utils import BcryptUtil
from src.schemas import UserSignInSchema
from src.repositories import UserRepository


class UserService:
    def __init__(self):
        self.user_repository = UserRepository()

    async def create_user(self, user: UserSignInSchema):
        user = User(name=user.name, email=user.email)
        return await self.user_repository.insert_one(user)

    async def get_user(self, user_id):
        return await self.user_repository.get_by_id(user_id)

    async def delete_user(self, user_id):
        return await self.user_repository.delete(user_id)

    async def update_user(self, user_id, update_data):
        return await self.user_repository.update(user_id, update_data)

    async def list_users(
        self,
        page: int = 1,
        page_size: int = None,
        filter_by: Dict = None,
        order_by: str = None,
    ):
        return await self.user_repository.get_all(
            page=page, page_size=page_size, filter_by=filter_by, order_by=order_by
        )