def decorated_auth(*args, **kwargs):
            if 'api-token' not in request.headers:
                return Response(mimetype='application/json',
                                response=json.dumps({
                                    'error':
                                    'Authentication token is not available.'
                                }),
                                status=400)
            token = request.headers.get('api-token')
            data = Auth.decode_token(token)
            if data['error']:
                return Response(mimetype='application/json',
                                response=json.dumps(data['error']),
                                status=400)

            username = data['data']['username']
            user = UserModel.find_username(_username=username)
            if not user:
                return Response(mimetype='application/json',
                                response=json.dumps(
                                    {'error': 'User does not exist.'}, ),
                                status=400)
            elif not user.first().is_admin:
                return Response(mimetype='application/json',
                                response=json.dumps(
                                    {'error': 'Only Admin!.'}, ),
                                status=400)

            return func(*args, **kwargs)
    def post(self):

        req_data = {}
        req_data['username'] = request.values.get('username', None)
        req_data['password'] = request.values.get('password', None)

        print('\nff' * 5, req_data, '\n**' * 5)

        get_user = UserModel.find_username(_username=req_data['username'])

        if get_user:
            user = get_user.first()
            print(user.is_admin, '**********\n\n')
            if user.check_password(password=req_data['password']):

                token = Auth.generate_token(user.username)
                message = {'Token': token}
                return jsonify(message)
            else:
                message = {'MSG': "wrong password!"}
                return jsonify(message)

        admin = request.values.get('admin', None)

        if admin == 'yes':
            new_user = UserModel.create_admin(username=req_data['username'],
                                              password=req_data['password'])
        else:
            new_user = UserModel.create_user(username=req_data['username'],
                                             password=req_data['password'])

        try:
            new_user.save()

        except Exception as e:

            logging.error('Error! {}'.format(e))
            return jsonify({"Error": e})

        print(new_user.items())
        token = Auth.generate_token(new_user.username)

        print('\n\n', token)

        retJson = {
            "jwt_token": token,
            "status": 201,
        }

        return jsonify(retJson)