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)
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) }