async def session(request): token = request.headers.get('token', None) if token is not None: user = find_session(token) if user is not None: return json(encode_user(user)) else: return response.json({'message': 'no such session'}, status=404) else: return response.json({'message': 'no session token'}, status=404)
async def contacts(request): token = request.headers.get('token', None) if token is not None: user = find_session(token) if user is not None: contacts = find_contacts(user) return json(encode_contacts(contacts)) else: return response.json({'message': 'no such session'}, status=401) else: return response.json({'message': 'requires a session'}, status=401)
async def search(request): token = request.headers.get('token', None) if token is not None: user = find_session(token) if user is not None: params = ['keywords'] data = with_body(request, params) if len(data) == len(params): contacts = search_contacts(user, data[0]) return json(encode_contacts(contacts)) else: return response.json({'message': 'missing keywords'}, status=400) else: return response.json({'message': 'no such session'}, status=401) else: return response.json({'message': 'requires a session'}, status=401)
async def accept(request): token = request.headers.get('token', None) if token is not None: user = find_session(token) if user is not None: params = ['email'] data = with_body(request, params) if len(data) == len(params): contact = user_by_email(data[0]) if contact is not None: if decline_follow(user, contact): if decline_follow_request(user, contact): contacts = find_contacts(user) return json(encode_contacts(contacts)) else: return response.json( { 'message': 'cannot decline follow request in db' }, status=500) else: return response.json( { 'message': 'cannot decline follow request in opentact' }, status=500) else: return response.json({'message': 'no such contact'}, status=404) else: return response.json({'message': 'missing email'}, status=400) else: return response.json({'message': 'no such session'}, status=401) else: return response.json({'message': 'requires a session'}, status=401)