12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import json
- from bottle import request, response
- import model
- def missing_attributes(attributes):
- for attr in attributes:
- if attr not in request.json:
- return attr
- else:
- return False
- def login():
- missing = missing_attributes(['username', 'password'])
- if missing:
- return bad_request('Missing value for attribute ' + str(missing))
- username = request.json['username']
- password = request.json['password']
- session_id = model.login(username, password)
- if session_id:
- return {'session_id': session_id}
- else:
- return forbidden('Invalid login data')
- def register():
- missing = missing_attributes(['username', 'password'])
- if missing:
- return bad_request('Missing value for attribute ' + str(missing))
- username = request.json['username']
- password = request.json['password']
- if model.user_exists(username):
- return forbidden('User already exists.')
- if model.register(username, password):
- return {'message': "successfully registered user"}
- else:
- bad_request('registration not successful')
- def not_found(msg=None):
- response.status = 404
- response.content_type = 'application/json'
- if msg is None:
- return json.dumps({"error": "404: Page not found"})
- else:
- return json.dumps({"error": "404: Page not found: " + msg})
- def forbidden(msg=None):
- response.status = 403
- response.content_type = 'application/json'
- if msg is None:
- return json.dumps({"error": "403: Forbidden"})
- else:
- return json.dumps({"error": "403: Forbidden: " + msg})
- def bad_request(msg=None):
- response.status = 400
- response.content_type = 'application/json'
- if msg is None:
- return json.dumps({"error": "400: Bad request"})
- else:
- return json.dumps({"error": "400: Bad request: " + msg})
|