예제 #1
0
def authenticate_user():
    try:
        data = request.get_json()
        current_user = User.find_by_username(data['username'])
        if not current_user:
            return response_with(resp.SERVER_ERROR_404)
        if User.verify_hash(data['password'], current_user.password):
            access_token = create_access_token(identity=data['username'])
            return response_with(
                resp.SUCCESS_201,
                value={
                    'message':
                    'Logged in as {}'.format(current_user.username),
                    "token":
                    access_token,
                    "name":
                    current_user.username,
                    "avatar":
                    'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif'
                })
        else:
            return response_with(resp.UNAUTHORIZED_401)
    except Exception as e:
        print(e)
        return response_with(resp.INVALID_INPUT_422)
예제 #2
0
 def post(self):
     username: str = get_jwt_identity()
     data: dict = self.reqparse.parse_args(http_error_code=400)
     serializer = LinkSerializer()
     if username:
         data['user_id'] = User.find_by_username(username).id
     link = Link()
     for k, v in data.items():
         setattr(link, k, v)
     try:
         link.check_and_save_link()
     except IntegrityError:
         link.short_url = make_short_url(9)
         link.check_and_save_link()
     return {
         'message': 'A shortened url was created successfully',
         'link_info': serializer.dump(link)
     }