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