diff --git a/app/routers/events.py b/app/routers/events.py index 8dca26f..ba11686 100644 --- a/app/routers/events.py +++ b/app/routers/events.py @@ -134,111 +134,109 @@ async def delete_events_id(item_id : str, authorize: Annotated[bool, Depends(per response = JSONResponse(content=content) return response -@router.put("/events/me/{item_id}",tags=["users"]) -async def update_users_me(item_id: str, current_user: Annotated[users.User, Depends(users_token.get_current_active_user)], authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin", "User"]))], userSingle: users.UserIn | None = None): - user_repository = users.UserRepository(database=database.database) - current_user.username = userSingle.username - current_user.password = user_token.get_password_hash(userSingle.password) - current_user.roles = userSingle.roles - current_user.email = userSingle.email - user_repository.save(current_user) - content = {"message": "user is updated"} +@router.put("/events/me/{item_id}",tags=["events"]) +async def update_events_me(item_id: str, current_user: Annotated[users.User, Depends(users_token.get_current_active_user)], authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin", "User"]))], eventSingle: events.EventIn | None = None): + event_repository = event.EventRepository(database=database.database) + event = event_repository.find_one_by_id(ObjectId(item_id)) + event.name = EventSingle.name + event.place = EventSingle.place + event.start_date = eventSingle.start_date + event.end_date = eventSingle.end_date + event.organizers = eventSingle.organizers + event.participants = eventSingle.participants + event.interested = eventSingle.interested + event.updated_at = datetime.today() + event_repository.save(event) + content = {"message": "event is updated"} response = JSONResponse(content=content) - return current_user + return response -@router.put("/users", tags=["users"], status_code=status.HTTP_201_CREATED) -async def update_users(authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))], userSingle: users.UserIn | None = None): - if userSingle is None: +@router.put("/events", tags=["events"], status_code=status.HTTP_201_CREATED) +async def update_events(authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))], eventSingle: events.EventIn | None = None): + if eventSingle is None: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="Body request is empty" ) - user_repository = users.UserRepository(database=database.database) + event_repository = event.EventRepository(database=database.database) - user = user_repository.find_one_by({"$or":[{"username": {'$eq': userSingle.username}}, {"email": {"$eq": userSingle.email}}]}) - if user is not None: - if user.username == userSingle.username: - raise HTTPException( - status_code=status.HTTP_204_NO_CONTENT, - detail="username" - ) - if user.email == userSingle.email: - raise HTTPException( - status_code=status.HTTP_204_NO_CONTENT, - detail="email" - ) + event = event_repository.find_one_by({"name": {'$eq': eventSingle.name}}) + if event is not None: + raise HTTPException( + status_code=status.HTTP_204_NO_CONTENT, + detail="name" + ) + - user = users.User(username=userSingle.username, password=users_token.get_password_hash(userSingle.password), email=userSingle.email) - user.roles = userSingle.roles - user.firstName = userSingle.firstName - user.name = userSingle.name - user.birth = userSingle.birth - user.created_at = datetime.today() - user_repository.save(user) - content = {"message": "user is created"} + event = events.Event(name=eventSingle.name, place=eventSigle.place) + event.start_date = eventSingle.start_date + event.end_date = eventSingle.end_date + event.created_at = datetime.today() + event_repository.save(event) + content = {"message": "event is created"} response = JSONResponse(content=content, status_code=status.HTTP_201_CREATED) return response -@router.put("/users/{item_id}", tags=["users"], status_code=status.HTTP_200_OK) -async def update_users_id(item_id: str, authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))], userSingle: users.UserIn | None = None, response: Response = Response): - if userSingle is None: +@router.put("/events/{item_id}", tags=["events"], status_code=status.HTTP_200_OK) +async def update_events_id(item_id: str, authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))], eventSingle: events.EventIn | None = None, response: Response = Response): + if eventSingle is None: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail="Body request is empty" ) - user_repository = users.UserRepository(database=database.database) + event_repository = users.EventRepository(database=database.database) - user = user_repository.find_one_by({"id": {'$eq': ObjectId(item_id)}}) - if user is None: + event = event_repository.find_one_by({"id": {'$eq': ObjectId(item_id)}}) + if event is None: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, - detail="User not found" + detail="Event not found" ) - user.username = userSingle.username - user.password = users_token.get_password_hash(userSingle.password) - user.roles = userSingle.roles - user.email = userSingle.email - user.firstName = userSingle.firstName - user.name = userSingle.name - user.birth = userSingle.birth - user.updated_at = datetime.today() - user_repository.save(user) - content = {"message": "user is updated"} + event.name = EventSingle.name + event.place = EventSingle.place + event.start_date = eventSingle.start_date + event.end_date = eventSingle.end_date + event.organizers = eventSingle.organizers + event.participants = eventSingle.participants + event.interested = eventSingle.interested + event.updated_at = datetime.today() + event_repository.save(event) + content = {"message": "event is updated"} response = JSONResponse(content=content) return response -@router.patch("/users/groups",tags=["users"]) -async def patch_users_groups(authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))], userids: users.UserIDS | None = None): - if len(userids.ids) == 0: +@router.patch("/events/groups",tags=["events"]) +async def patch_events_groups(authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))], eventids: events.EventIDS | None = None): + if len(eventids.ids) == 0: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, - detail="userids should be greater than 0" + detail="eventids should be greater than 0" ) - user_repository = users.UserRepository(database=database.database) - content = {"message": "users are enabled"} - for i in userids.ids: - user = user_repository.find_one_by_id(ObjectId(i)) - user.status = 1 - user.disabled_at = None - user.deleted_at = None - user_repository.save(user) + event_repository = users.EventRepository(database=database.database) + content = {"message": "events are enabled"} + for i in eventids.ids: + event = event_repository.find_one_by_id(ObjectId(i)) + event.status = 1 + event.disabled_at = None + event.deleted_at = None + event_repository.save(event) response = JSONResponse(content=content) return response -@router.patch("/users/{item_id}", tags=["users"], response_model=users.User) -async def patch_users_id(item_id : str, authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))]): - user_repository = users.UserRepository(database=database.database) - user = user_repository.find_one_by_id(ObjectId(item_id)) - user.status = 1 - user.disabled_at = None - user.deleted_at = None - user_repository.save(user) - content = {"message": "user is enabled"} +@router.patch("/events/{item_id}", tags=["users"]) +async def patch_events_id(item_id : str, authorize: Annotated[bool, Depends(permissions_checker.PermissionChecker(roles=["Admin"]))]): + event_repository = events.EventRepository(database=database.database) + event = event_repository.find_one_by_id(ObjectId(item_id)) + event.status = 1 + event.disabled_at = None + event.deleted_at = None + event_repository.save(event) + content = {"message": "event is enabled"} response = JSONResponse(content=content) return response \ No newline at end of file