Example #1
0
from flask_restx import Namespace, Resource, fields
from flask_jwt_extended import jwt_required, get_jwt_identity
from flask import request

from models.user import UserModel
from schemas.user import UserSchema
from user_functions.record_user_log import record_user_log

api = Namespace('update', description='Update User')

user_schema = UserSchema()
users_schema = UserSchema(many=True)

user_model = api.model('User', {
    'full_name': fields.String(required=True, description='Full Name'),
    'email': fields.String(required=True, description='Email'),
    'phone': fields.String(required=True, description='Phone'),
})

@api.route('/<int:id>')
@api.param('id', 'The user identifier')
class UpdateUser(Resource):
    @api.doc('Update user')
    @api.expect(user_model)
    @jwt_required
    def put(self,id:int):
        '''Update User'''
        try:
            my_user = UserModel.fetch_by_id(id)
            user = user_schema.dump(my_user)
            if len(user) == 0:
Example #2
0
from models.user import UserModel
from schemas.user import UserSchema
from blacklist import BLACKLIST

ERROR_BLANK = " '{}' field cannot be blank"
ERROR_INSERTING = "An error occurred inserting the song"
ERROR_USER_ALREADY_EXISTS = "An user with name '{}' already exist"
ERROR_USER_NOT_FOUND = "Tuning not found"
ERROR_INVALID_CREDENTIALS = "Invalid credentials"
MESSAGE_TUNNING_DELETED = "Tuning deleted"
MESSAGE_USER_CREATED = "User create successfully"
MESSAGE_USER_LOGGED_IN = "Login successfully"
MESSAGE_USER_LOGGED_OUT = "User <id={}> logged out"
MESSAGE_USER_DELETED = "User has been removed"

user_schema = UserSchema()


class UserRegister(Resource):
    @classmethod
    def post(cls):
        try:
            user = user_schema.load(request.get_json())
        except ValidationError as err:
            return err.messages, 400

        if UserModel.find_by_username(user.username):
            return ({"error": ERROR_USER_ALREADY_EXISTS.format(user.username)}, 400)

        user.save_to_db()
Example #3
0
from flask import request
from flask_restful import Resource
from http import HTTPStatus
from utils import hash_password, save_image
from models.user import User
from flask_jwt_extended import jwt_optional, get_jwt_identity, jwt_required, fresh_jwt_required
from schemas.user import UserSchema
from resources.util import user_not_found, item_not_found
from extensions import image_set
import os

user_schema = UserSchema()
user_public_schema = UserSchema(exclude=(
    "email",
    "created_at",
    "updated_at",
))
user_profile_picture_schema = UserSchema(only=("profile_picture", ))


class UserListResource(Resource):  #Käyttäjän teko
    def post(self):
        json_data = request.get_json()

        data, errors = user_schema.load(data=json_data)

        if errors:
            return {
                "message": "Validation errors",
                "errors": errors
            }, HTTPStatus.BAD_REQUEST
Example #4
0
from flask import request
from flask_jwt_extended import get_jwt_identity, jwt_optional, jwt_required
from flask_restful import Resource
from http import HTTPStatus
from marshmallow import ValidationError

from models.user import User
from schemas.user import UserSchema

user_schema = UserSchema()
user_public_schema = UserSchema(exclude=('email', ))


class UserListResource(Resource):
    def post(self):
        json_data = request.get_json()
        try:
            data = user_schema.load(data=json_data)
        except ValidationError as errors:
            return {
                'message': 'Validation errors',
                'errors': errors.messages
            }, HTTPStatus.BAD_REQUEST

        if User.get_by_username(data.get('username')):
            return {'message': 'username already used'}, HTTPStatus.BAD_REQUEST

        if User.get_by_email(data.get('email')):
            return {'message': 'email already used'}, HTTPStatus.BAD_REQUEST

        user = User(**data)
Example #5
0
 def get(cls):
     user_id = get_jwt_identity()
     user = UserModel.find_by_id(user_id)
     if not user:
         return max_err(USER_NOT_FOUND, 404)
     return max_res(UserSchema().dump(user))
Example #6
0
from extensions import image_set, limiter

from mailgun import MailgunApi
from models.user import User
from models.recipe import Recipe

from schemas.recipe import RecipeSchema, RecipePaginationSchema
from schemas.user import UserSchema

from utils import generate_token, verify_token, save_image, clear_cache

from webargs import fields
from webargs.flaskparser import use_kwargs

user_schema = UserSchema()
user_avatar_schema = UserSchema(only=('avatar_url',))
user_public_schema = UserSchema(exclude=('email',))
recipe_list_schema = RecipeSchema(many=True)
recipe_pagination_schema = RecipePaginationSchema()

# This data is stored in the environment variable. First, you should ensure of
# creating an account with Mailgun, then generate the API_KEY and API_URL,
# and add both to the environment variable.
mailgun = MailgunApi(
    domain=os.environ.get('MAILGUN_DOMAIN'),
    api_key=os.environ.get('MAILGUN_API_KEY'))

# Create a dictionary for API pagination. The key-value pairs are passed to the
# @use_kwargs decorator
pages = {
Example #7
0
from schemas.user import UserSchema
from blacklist import BLACKLIST

USER_ALREADY_EXISTS = "A user with that username already exists."
CREATED_SUCCESSFULLY = "User created successfully. Confirmation email was sent."
USER_NOT_FOUND = "User not found."
USER_DELETED = "User deleted."
INVALID_CREDENTIALS = "Invalid credentials!"
USER_LOGGED_OUT = "User <id={user_id}> successfully logged out."
NOT_CONFIRMED_ERROR = (
    "You have not confirmed registration, please check your email <{}>."
)
NOT_ACTIVATED = "Not activated"
ACTIVATED = "Is activated"

user_schema = UserSchema(unknown=EXCLUDE)


class UserRegister(Resource):
    @classmethod
    def post(cls):
        user_json = request.get_json()
        user = user_schema.load(user_json)

        if UserModel.find_by_username(user.username):
            return {"message": USER_ALREADY_EXISTS}, 400

        if UserModel.find_by_email(user.email):
            return {"message": USER_ALREADY_EXISTS}, 400

        user.save_to_db()
Example #8
0
import traceback
import datetime
from flask_restful import Resource, reqparse
from flask import request
from werkzeug.security import safe_str_cmp
from flask_jwt_extended import create_access_token, jwt_refresh_token_required, create_refresh_token, get_jwt_identity, jwt_required, get_raw_jwt

from schemas.user import UserSchema
from models.user import UserModel
from models.confirmation import ConfirmationModel

user_schema = UserSchema()
user_list_schema = UserSchema(many=True)


class UserRegister(Resource):
    @classmethod
    def post(cls):
        user = user_schema.load(request.get_json())

        if UserModel.find_by_email(user.email):
            return {"message": "Email already exist"}, 400

        if UserModel.find_by_contact(user.contact):
            return {"message": "contact already registered"}, 400

        try:
            user.save_to_db()
            confirmation = ConfirmationModel(user.id)
            confirmation.confirmed = True
            confirmation.save_to_db()
Example #9
0
def create_user(user: UserSchema, db: Session):
    db_user = models.User(**user.dict())
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user
Example #10
0
from flask_restplus import Api, Resource
from github import Github
from marshmallow import ValidationError

from main import app, db
from schemas.user import UserSchema
from flask_script import Manager
from models.user import *

api = Api(app)
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)

user = User.query.all()
schema_get = UserSchema(many=True)
schema_post = UserSchema()


@api.route('/users')
class UsersView(Resource):
    def get(self):
        return schema_get.dump(user)

    def post(self):
        user_details = request.get_json()
        try:
            clean_data = schema_post.load(user_details)
            data = User(**clean_data)
            db_response = data.save()
            response = schema_post.dump(db_response)
Example #11
0
from flask import request
from flask_restful import Resource
from flask_jwt_extended import get_jwt_identity, jwt_required
from http import HTTPStatus
from marshmallow import EXCLUDE

from utils import check_admin, check_email
from models.user import User

from schemas.user import UserSchema
from schemas.find_user import UserInfoSchema

user_schema = UserSchema()
user_schema_noadm = UserSchema(exclude=("is_admin", ))
user_schema_outsider = UserSchema(exclude=("is_turkuamk", "is_admin"))


class UserResource(Resource):
    def post(self):
        json_data = request.get_json()
        data = user_schema.load(json_data)
        admin = check_admin(data.get("admin_pass"))
        data = UserSchema(unknown=EXCLUDE).load(json_data)

        if User.get_by_username(data.get("username")) or User.get_by_email(
                data.get("email")):
            return {
                "message": "Username or email already taken"
            }, HTTPStatus.BAD_REQUEST

        if admin and check_email(data.get("email")):