def api_user(id): if request.method == 'PUT': data = request.get_json() try: UserController().update_user(id=data['id'], name=data['name'], fruit=data['fruit']) return "Success", 200 except: return "Bad request", 400 elif request.method == 'GET': return UserController().get_user(id).toJson() elif request.method == 'DELETE': pass else: return "Bad request", 400
def get(self): try: session = Session() uuid = request.headers["GreenList-User-Id"] user = UserController().get_user_by_id(uuid, session) if not user: abort(401) products = ( SuggestionController().get_suboptimal_products(session)) result = [] for product in products: product_json = self.product_to_json(product) suggestions = SuggestionController().get_suggestions( user, product, session) alternatives = [ self.suggestion_to_json(suggestion) for suggestion in suggestions ] product_json.update({'alternatives': alternatives}) result.append(product_json) return result finally: session.close()
def api_users(): if request.method == 'POST': return "Not implemented", 500 elif request.method == 'GET': users = UserController().get_all_users() return jsonify([user.toJson() for user in users]) else: return "Bad request", 400
def list_all(): if not LoginController.athenticate_user(): return redirect(url_for('logout')) resp = google.get("/oauth2/v2/userinfo") email = resp.json()["email"] # all_agents = UserModel.find_all() user = UserController() all_agents = user.get_all() return render_template('list_all.html', all_agents=all_agents, email=email)
async def register(request): body = json.loads(await request.body()) name_user = body.get('name_user') or None email = body.get('email') pwd = body.get('pwd') user_controller = UserController(email=email, pwd=pwd) ok, message = await user_controller.create_user(username=name_user) if ok: return JSONResponse({'message': f'user created successfully {email}'}, status_code=200) else: return JSONResponse({'message': message}, status_code=400)
async def login(request): body = json.loads(await request.body()) user_controller = UserController(email=body.get('email'), pwd=body.get('pwd')) user = await user_controller.get_user() if user: if verify_password(user.password, body.get('pwd')): return JSONResponse({'status': 'logged in'}, status_code=200) else: return JSONResponse({'status': 'password is wrong'}, status_code=401) else: return JSONResponse({'status': 'not logged'}, status_code=400)
def post(self): try: req = request.get_json() user_id = req['userId'] product_id = req['productId'] quantity = req['quantity'] session = Session() user = UserController().get_user_by_id(user_id, session) product = ProductController().get_product(product_id, session) PurchasesController().add_purchase(user, product, quantity, session) finally: session.commit() session.close()
def co2_difference_to_trees(self, user, original, alternative, session=None): own_session = False if not session: session = Session() own_session = True challenge_months = ( UserController().get_challenge_duration_in_months(user)) tree_co2_equivalent = TREE_CO2_GRAMS_PER_MONTH * challenge_months saved_trees = (original - alternative) / tree_co2_equivalent if own_session: session.close() return saved_trees
from pydantic import UUID4 import requests import uuid from uuid import UUID from tortoise.contrib.pydantic import pydantic_model_creator from fastapi import FastAPI, HTTPException from tortoise.exceptions import DoesNotExist from utils import get_current_user, demand_current_user from controllers.user import UserController router = APIRouter(tags=["User"]) user_router = router controller = UserController() @router.get("/", response_model=List[controller.pydantic_model]) async def get_users(): return await controller.retrieveAll() from models.user import User, User_Pydantic UserPydantic = pydantic_model_creator(User, name="user") @router.get("/me", response_model=UserPydantic) async def get_me(current_user: dict = Depends(demand_current_user)):
def __init__(self): self.controller = UserController()
def users(): users = UserController().get_all_users() return render_template('users.html', users=users)
def user(id): user = UserController().get_user(id) return render_template('users.html', users=[user])