diff --git a/main.py b/main.py index 259f93c..94f6b91 100644 --- a/main.py +++ b/main.py @@ -10,36 +10,54 @@ User(id=uuid4(), first_name="Mila", last_name="Py", - gender=Gender.female, - roles=[Role.user] + gender=Gender.FEMALE, + roles=[Role.USER] ), User(id=uuid4(), first_name="James", last_name="Jones", - gender=Gender.male, - roles=[Role.admin] + gender=Gender.MALE, + roles=[Role.ADMIN] ) ] @app.get('/') async def root(): + """ + set the root page message for the api + """ return {'example': 'this is an example', 'data': 100} @app.get('/api/v1/users') async def fetch_users(): + """ + function to return all users in db + :return: + """ return db @app.post('/api/v1/users') async def register_users(user: User): + """ + function to add users using the api + :param user: + :return: + """ db.append(user) return {"id": user.id} @app.put('/api/v1/users/{user_id}') async def update_users(user_update: ChangeUser,user_id: UUID): + """ + function to update user information using the api + :param user_update: + :param user_id: + :return: + """ for user in db: if user_id == user.id: if user_update.first_name is not None: @@ -57,7 +75,13 @@ async def update_users(user_update: ChangeUser,user_id: UUID): @app.delete('/api/v1/users/{user_id}') async def delete_user(user_id: UUID): - for user in db: + """ + function to delete users using the api + :param user_id: + :return: + """ + users = db.copy() + for user in users: if user.id == user_id: db.remove(user) return f"{user_id} has been removed" @@ -69,11 +93,20 @@ async def delete_user(user_id: UUID): @app.get('/api/v1/random') async def get_random(): + """ + function to obtain random numbers using api + :return: + """ random_n:int = random.randint(0,100) return {'number':random_n, 'limit': 100} @app.get('/api/v1/random/{limit}') async def get_random_limit(limit:int): + """ + function to get random number and set limit using api + :param limit: + :return: + """ random_n:int = random.randint(0,limit) return {'number':random_n, 'limit': limit} diff --git a/models.py b/models.py index ed8c634..849c78c 100644 --- a/models.py +++ b/models.py @@ -1,20 +1,29 @@ from typing import Optional, List from uuid import UUID, uuid4 -from pydantic import BaseModel from enum import Enum +from pydantic import BaseModel class Gender(str, Enum): - male = "male" - female = "female" + """ + class for gender api model + """ + MALE = "male" + FEMALE = "female" class Role(str, Enum): - admin = "admin" - user = "user" + """ + class for roles in api model + """ + ADMIN = "admin" + USER = "user" class User(BaseModel): + """ + class for user fields in api + """ id: Optional[UUID] = uuid4() first_name: str last_name: str @@ -23,6 +32,9 @@ class User(BaseModel): class ChangeUser(BaseModel): + """ + class to update user fields in api + """ first_name: Optional[str] last_name: Optional[str] roles: Optional[List[Role]]