Skip to content

Commit

Permalink
refactor code
Browse files Browse the repository at this point in the history
  • Loading branch information
Kasulejoseph committed Oct 24, 2018
1 parent e7472df commit 4b3ef01
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 16 deletions.
2 changes: 1 addition & 1 deletion .coverage

Large diffs are not rendered by default.

23 changes: 20 additions & 3 deletions app/auth/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,12 +82,13 @@ def post(self):
return ({"Failed": "Empty request"}, 400)
username = detail['username']
password = generate_password_hash(detail['password'])
if not username and password:
if not username and not password:
return response_message(
'Failed', 'Username and password are required', 400)
db_user = db.get_order_by_value('users', 'username', username)
if not db_user:
return ({"Failed": "incorect username"}, 401)
return response_message(
'Failed', 'incorect username', 401)
new_user = User(
db_user[0], db_user[1], db_user[2], db_user[3],
db_user[4], db_user[5])
Expand Down Expand Up @@ -116,5 +117,21 @@ def post(self):
except KeyError as e:
return ({'KeyError': str(e)})

class userDetails(Resource):
def get(self):
users = Database().get_users()
user_list = []
for user in users:
user_dict ={
"user_id": user[0],
"username": user[1],
"email": user[2],
"location": user[3],
"role": user[5]
}
user_list.append(user_dict)
return ({"users": user_list}), 200

api.add_resource(RegisterUser, '/api/v1/auth/signup')
api.add_resource(LoginUser, '/api/v1/auth/login')
api.add_resource(LoginUser, '/api/v1/auth/login')
api.add_resource(userDetails, '/api/v1/users')
8 changes: 8 additions & 0 deletions app/database/connect.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,14 @@ def get_all_orders(self):
order_list.append(order)
return order_list

def get_users(self):
self.cursor.execute("SELECT * FROM users")
users = self.cursor.fetchall()
user_list = []
for user in users:
user_list.append(user)
return user_list

def get_order_by_value(self, table_name, table_colum, value):
"""
Function gets items from the
Expand Down
27 changes: 15 additions & 12 deletions app/views/orders.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def get(self, current_user, order_id):
order_one = Database.get_order_by_value('orders', 'order_id', order_id)
if order_one:
response = {
'order_id': order_one[0], 'meal': order_one[3],
'order_id': order_one[0], 'user_id': order_one[1], 'meal': order_one[3],
'desc': order_one[4], 'price': order_one[5]
}
user = Database.get_order_by_value('users', 'user_id', order_id)
Expand Down Expand Up @@ -149,16 +149,19 @@ def get(current_user, user):
if not order_all:
return {'error': 'You have not ordered from the site yet'}, 404
for order in order_all:
order_dic = {
"order_id": order[0],
"menu_id": order[1],
'user_id': order[2],
"meal": order[3],
"desc": order[4],
"price": order[5],
"status": order[6]
}
orders.append(order_dic)
try:
order_dic = {
"order_id": order[0],
"menu_id": order[1],
'user_id': order[2],
"meal": order[3],
"desc": order[4],
"price": order[5],
"status": order[6]
}
orders.append(order_dic)
except IndexError as e:
return {'error': 'You have not ordered from the site yet'}, 404
return {'Requested': orders}, 200


Expand Down Expand Up @@ -213,7 +216,7 @@ def post(self):
meal = order.dish
if Database.add_to_menu(meal, desc, price):
return {'Failed': 'Error adding a menu'}, 401
return {'message': 'successfully added to menu'}, 201
return ({'message': 'successfully added to menu'}, 201)
except KeyError as e:
return ({'KeyError': str(e)})

Expand Down
28 changes: 28 additions & 0 deletions tests/test_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,34 @@ def test_password_keyword_missing(self):
data = json.loads(rv.data.decode())
self.assertEqual(data['KeyError'],"'password'" )

def test_all_users_details(self):
with self.client:
result = self.signup_user(
"kasule", "kasule@gmail.com", "kansanga", "12347809", "admin")
self.assertEqual(result.status_code, 201)
res = json.loads(result.data.decode())
self.assertTrue(res['status'] == 'Success')
self.assertEqual(
'User account successfully created, log in',
str(res['message']))

users = Database().get_users()
user_dict ={
"user_id": 1,
"username": "Erick",
"email": "erick@gmail.com",
"location": "luwero",
"role": "user"
}
rs = self.client.get(
'/api/v1/users',
content_type="application/json",
data=json.dumps(user_dict)
)
data = json.loads(rs.data.decode())
self.assertEqual(rs.status_code, 200)
self.assertIn("'location': 'kansanga'", str(data['users']))




Expand Down

0 comments on commit 4b3ef01

Please sign in to comment.