Пример #1
0
    def post(self):
        '''Method for signing up a user'''

        args = SignupResource.parser.parse_args()
        password = args.get('password')
        username = args.get('username')
        email = args.get('email')

        email_format = re.compile(
        r"(^[a-zA-Z0-9_.-]+@[a-zA-Z-]+\.[.a-zA-Z-]+$)")
        username_format = re.compile(r"(^[A-Za-z0-9-]+$)")

        if is_blank(password) or is_blank(username) or is_blank(email):
            return {'message': 'All fields are required'}, 400
        if not (re.match(username_format, username)):
            return {'message' : 'Invalid username'}, 400
        elif not (re.match(email_format, email)):
            return {'message': 'Invalid email. Ensure email is of the form [email protected]'}, 400
        if len(username) < 4:
            return {'message' : 'Username should be atleast 4 characters'}, 400
        if len(password) < 8:
            return {'message' : 'Password should be atleast 8 characters'}, 400

        username_exists = User.get('users', username=username)
        email_exists = User.get('users', email=email)

        if username_exists or email_exists:
            return {'message': 'That username or email is taken.'}, 203

        user = User(username=username, email=email, password=password)
        user.add()
        user= User.get('users', username=username)

        return {'message': 'Successfully registered', 'user': User.user_dict(user)}, 201
Пример #2
0
    def post(self, user_id):
        '''Method for adding entry'''
        args = EntryResource.parser.parse_args()
        title = args.get('title', '')
        description = args.get('description', '')

        if is_blank(title) or is_blank(description):
            return {'message': 'All fields are required'}, 400
        entry =  Entry(title=title, user_id=user_id, description=description)
        entry = entry.save()
        return {'message': 'Entry has been published', 'entry': entry}, 201
Пример #3
0
 def put(self,user_id, entry_id):
     '''Method for modifying an entry'''
     entry = Entry.get(user_id=user_id, id=entry_id)
     if isinstance(entry, dict):
         return entry, 404
     post_data = request.get_json()
     title = post_data.get('title', None)
     description = post_data.get('description', None)
     data = {}
     if title and is_blank(title) != '':
         data.update({'title': title})
     if description and is_blank(description) != '':
         data.update({'description': description})
     
     entry = entry.update(data=data)
     return {'message': 'Entry updated successfully', 'new_entry': entry}, 200
Пример #4
0
    def post(self):
        '''Method for logging in a user'''

        args = LoginResource.parser.parse_args()
        username = args["username"]
        password = args["password"]
        if is_blank(username) or is_blank(password) == '':
            return {'message': 'All fields are required'}, 400

        user = User.get("users", username=username)
        if not user:
            return {"message": "Username or password is wrong."}, 404
        if User.validate_password(username=user[1] ,password=password):
            token = User.generate_token(user)
            return {"message": "You are successfully logged in",
             "user": User.user_dict(user), "token":token}, 200
        return {"message": "Username or password is wrong."}, 401
Пример #5
0
    def post(self):
        '''Method for logging in a signed up user'''
        args = LoginResource.parser.parse_args()
        username = args["username"]
        password = args["password"]
        if is_blank(username) or is_blank(password) == '':
            return {'message': 'All fields are required'}, 400

        user = User.get_user_by_username(username)
        if not user:
            return {'message': 'User unavailable'}, 404
        if user.validate_password(password):
            token = user.generate_token()
            return {
                "message": "You are successfully logged in",
                'user': user.view(),
                'token': token
            }, 200
        return {"message": "Username or password is wrong."}, 401
Пример #6
0
 def post(self, user_id):
     '''Method for adding an entry'''
     args = EntryResource.parser.parse_args()
     title = args.get('title', '')
     description = args.get('description', '')
     if is_blank(title) or is_blank(description):
         return {'message': 'All fields are required'}, 400
     data = Entry.verify_entries(title, user_id)
     print(data)
     if data[0] != title:
         entry = Entry(title=title,
                       user_id=user_id,
                       description=description)
         entry.add()
         entries = Entry.get(user_id=user_id)
         return {
             'message': 'Entry has been published',
             'entry': [Entry.entry_dict(entry) for entry in entries]
         }, 201
     return {"message": "Please use a unique title"}, 400