コード例 #1
0
ファイル: app.py プロジェクト: pedro-gutierrez/opentact-demo
async def login(request):
    params = ['identity']
    data = with_body(request, params)
    if len(data) == len(params):
        user = find_identity(data)
        if user is not None:
            return __create_session(user)
        else:
            email = '{}@opentact.org'.format(data[0])
            avatar = gravatar(email)
            new_user = ['Anonymous', '', email, '', avatar, data[0]]
            if create_user(new_user):
                new_user = user_by_identity(data[0])
                if new_user is not None:
                    return __create_session(new_user)
                else:
                    return response.json(
                        {'message': 'cannot find user for identity'},
                        status=500)
            else:
                return response.json({'message': 'cannot create user'},
                                     status=500)

    else:
        return response.json({'message': 'missing data'}, status=400)
コード例 #2
0
ファイル: app.py プロジェクト: pedro-gutierrez/opentact-demo
async def login(request):
    params = ['username', 'password']
    data = with_body(request, params)
    if len(data) == len(params):
        user = find_user(data)
        if user is not None:
            return __create_session(user)
        else:
            return response.json({'message': 'invalid credentials'},
                                 status=404)

    else:
        return response.json({'message': 'missing data'}, status=400)
コード例 #3
0
ファイル: app.py プロジェクト: pedro-gutierrez/opentact-demo
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)
コード例 #4
0
ファイル: app.py プロジェクト: pedro-gutierrez/opentact-demo
async def register(request):
    data = with_body(request, ['first', 'last', 'email', 'password'])
    if len(data) == 4:
        avatar = gravatar(data[2])
        fullname = '{} {}'.format(data[0], data[1])
        data.append(avatar)
        identity = create_identity(data[2], fullname, avatar)
        if identity is not None:
            data.append(identity)
            if create_user(data):
                return json({'message': 'ok'})
            else:
                return response.json({'message': 'already exists'}, status=409)
        else:
            return response.json({'message': 'cannot create identity'},
                                 status=500)

    else:
        return response.json({'message': 'missing data'}, status=400)
コード例 #5
0
ファイル: app.py プロジェクト: pedro-gutierrez/opentact-demo
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)