38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
# Library imports
|
|
from flask import jsonify
|
|
from flask import render_template
|
|
|
|
# Import accounts blueprint
|
|
from accounts import accounts
|
|
|
|
# Import db
|
|
from accounts.models import db
|
|
|
|
# Import db models
|
|
from accounts.models.dog import Dog
|
|
from accounts.models.user import User
|
|
from accounts.models.visit import Visit
|
|
|
|
@accounts.route('/users/<username>/dashboard', methods=['GET'])
|
|
def user_dashboard(username):
|
|
# Retrieve user data
|
|
user = db.session.execute(db.select(User).filter_by(username=username)).scalar_one()
|
|
|
|
return render_template('users/dashboard/base.html', user=user, user_pets=user.get_dogs(), user_book_history=user.get_visits())
|
|
|
|
@accounts.route('/users/<username>', methods=['POST'])
|
|
def user(username):
|
|
user = db.session.execute(db.select(User).filter_by(username=username)).scalar_one()
|
|
return jsonify(user.to_dict()), 201
|
|
|
|
@accounts.route('/users/<username>/pets', methods=['POST'])
|
|
def user_pets(username):
|
|
user = db.session.execute(db.select(User).filter_by(username=username)).scalar_one()
|
|
|
|
dogs = list()
|
|
for dog in user.dogs:
|
|
dogs.append(dog.name)
|
|
|
|
return jsonify(dogs), 201
|
|
|