Ejemplo n.º 1
0
def login():
    ''' auth endpoint '''
    header_data = parse_qs(request)
    print(request)
    data = validate_user(header_data)
    if data['ok']:
        data = data['data']

        user = db.users.find_one({'email': data['email']}, {"_id": 0})
        if user and flask_bcrypt.check_password_hash(user['password'],
                                                     data['password']):
            del user['password']
            access_token = create_access_token(identity=data)
            refresh_token = create_refresh_token(identity=data)
            user['token'] = access_token
            user['refresh'] = refresh_token
            return jsonify({'ok': True, 'data': user}), 200
        else:
            return jsonify({
                'ok': False,
                'message': 'invalid username or password'
            }), 401
    else:
        return jsonify({
            'ok':
            False,
            'message':
            'Bad request parameters: {}'.format(data['message'])
        }), 400
Ejemplo n.º 2
0
def auth_user():
    '''auth endpoint '''
    data = validate_user(request.get_json())
    if data['ok']:
        data = data['data']
        user = mongo.db.users.find_one({'email': data['email']}, {"_id": 0})
        LOG.debug(user)
        if user and flask_bcrypt.check_password_hash(user['password'],
                                                     data['password']):
            del user['password']
            access_token = create_access_token(identity=data)
            refresh_token = create_refresh_token(identity=data)
            user['token'] = access_token
            user['refresh'] = refresh_token
            return jsonify({'ok': True, 'data': user}), 200
        else:
            return jsonify({
                'ok': False,
                'message': 'Invalid username or password'
            }), 401
    else:
        return jsonify({
            'ok':
            False,
            'message':
            'Bad request parameters: {}'.format(data['message'])
        }), 400
Ejemplo n.º 3
0
def register():
    ''' register user endpoint '''
    data = validate_user(request.get_json())
    if data['ok']:
        data = data['data']
        password = data['password']
        data['password'] = flask_bcrypt.generate_password_hash(
            data['password'])
        user = db.users.find_one({'email': data['email']}, {"_id": 0})
        # LOG.debug(user)
        if bool(user):
            return jsonify({'ok': False, 'message': 'User already exist with same email'}), 400
        else:
            db.users.insert_one(data)
            user = {}
            user['name'] = data['name']
            del data['name']
            del data['_id']
            data['password'] = password
            access_token = create_access_token(identity=data)
            refresh_token = create_refresh_token(identity=data)
            data['token'] = access_token
            data['refresh'] = refresh_token
            del data['password']
            data['name'] = user['name']
            # LOG.debug(data)
            return jsonify({'ok': True, 'data': data, 'message': 'User created successfully!'}), 200
    else:
        return jsonify({'ok': False, 'message': 'Bad request parameters: {}'.format(data['message'])}), 400
Ejemplo n.º 4
0
def register():
    """Register use endpoint."""
    data = validate_user(request.get_json())
    if data['ok']:
        data = data['data']
        data['password'] = flask_bcrypt.generate_password_hash(data['password'])
        mongo.db.users.insert_one(data)
        return jsonify({'ok': True, 'message': 'User created successfully!'}), 200
    else:
        return jsonify({'ok': True, 'message': 'Base request parameters:{}'.format(data['message'])}), 400
Ejemplo n.º 5
0
def register():
    '''Registration route'''
    if not request.json:
        abort(400)
    data = validate_user(request.json)
    if data['ok']:
        user = data['data']
        user['password'] = bcrypt.generate_password_hash(request.json['password']).decode('utf-8')
        user['images'] = []
        mongo.db.users.insert_one(user)
        return jsonify({'ok': True, 'message': 'User created successfully!'}), 200
    else:
        return jsonify({'ok': False, 'message': 'Bad request parameters: {}'.format(data['message'])}), 400
Ejemplo n.º 6
0
def register():
    ''' register user endpoint '''
    data = validate_user(request.get_json())
    if data:
        data['password'] = flask_bcrypt.generate_password_hash(
            data['password'])
        mongo.db.users.insert_one(data)
        return jsonify({
            'ok': True,
            'message': 'User created successfully!'
        }), 200
    else:
        return jsonify({
            'ok': False,
            'message': 'Bad request parameters!'
        }), 400
Ejemplo n.º 7
0
def register():
    data = validate_user(request.get_json())

    if data['ok']:
        headers = {
            'X-SP-GATEWAY':
            os.environ.get('CLIENT_ID') + '|' +
            os.environ.get('CLIENT_SECRET'),
            'X-SP-USER-IP':
            '127.0.0.1',
            'X-SP-USER':
            '******',  #DEFAULT FINGERPRINT
            'Content-Type':
            'application/json'
        }
        data = data['data']
        api_end_point = 'https://uat-api.synapsefi.com/v3.1/users'
        payload = {
            "logins": [{
                "email": data['email']
            }],
            "phone_numbers": [data['phone_number']],
            "legal_names": [data['legal_name']]
        }
        headers['X-SP-GATEWAY'] = os.environ.get(
            'CLIENT_ID') + '|' + os.environ.get('CLIENT_SECRET')
        response = requests.post(url=api_end_point,
                                 data=json.dumps(payload),
                                 headers=headers)

        if response.status_code == 200:
            mongo.db.users.insert_one(response.json())
            generate_oauth(response.json()['_id'],
                           response.json()['refresh_token'])
            user = mongo.db.users.find_one({'_id': response.json()['_id']})
            msg = {'oauth_key': user['oauth_key'], 'user_id': user['_id']}
            return jsonify(msg), 200
        else:
            return jsonify(response.json()), 400
    else:
        return jsonify({
            'ok':
            False,
            'message':
            'Bad request parameters: {}'.format(data['message'])
        }), 400
Ejemplo n.º 8
0
def auth_user():
    ''' login endpoint '''
    data = validate_user(request.json)
    if data['ok']:
        data = data['data']
        user = mongo.db.users.find_one({'username': data['username']})
        if user and bcrypt.check_password_hash(user['password'], data['password']):
            del user['password']
            access_token = create_access_token(identity=data)
            refresh_token = create_refresh_token(identity=data)
            user['token'] = access_token
            user['refresh'] = refresh_token
            return jsonify({'ok': True, 'data': user}), 200
        else:
            return jsonify({'ok': False, 'message': 'invalid username or password'}), 401
    else:
        return jsonify({'ok': False, 'message': 'Bad request parameters: {}'.format(data['message'])}), 400
Ejemplo n.º 9
0
def auth_user():
    """Auth endpoint."""
    data = validate_user(request.get_json())
    if data.get('ok'):
        data = data.get('data')
        user_data = mongo.db.users.find_one({'email': data.get('email')}, {'_id': 0})
        LOG.debug(user_data)
        if user_data and flask_bcrypt.check_password_hash(user_data.get('password'), data.get('password')):
            del user_data['password']
            access_token = create_access_token(identity=data)
            refresh_token = create_refresh_token(identity=data)
            user_data['token'] = access_token
            user_data['refresh'] = refresh_token
            return jsonify({'ok': True, 'data': user_data}), 200
        else:
            return jsonify({'ok': False, 'message': 'Invalid username or password'}), 401
    else:
        return jsonify({'ok': False, 'message': 'Bad request parameters: {}'.format(data.get('message'))}), 400
Ejemplo n.º 10
0
def user(id):
    
    #print("id",id)
    #print("args",request.args)

    if request.method == 'GET':
        query = request.args
        data = mongo.db.users.find_one({"_id":ObjectId(id)})
        #print("data",data)       
        #print("len",len(data))
        
        """
        check = checkSimpleForeign("users",id)
        if check != True:
            return check
        """

        return jsonify(data), 200
    
    if request.method == 'DELETE':
        db_response = mongo.db.users.delete_one({"_id":ObjectId(id)})
        if db_response.deleted_count == 1:
            response = {'message': 'record deleted'}
        else:
            response = {'message': 'no record found'}
        return jsonify(response), 200

    if request.method == 'PUT':
        #data = request.get_json()
        data = validate_user(request.get_json())
        if data['ok']:
            data = data['data']
            if 'password' in data:            
                data['password'] = flask_bcrypt.generate_password_hash(
                    data['password'])
            data["updatedAT"] = datetime.datetime.utcnow()        
            db_response = mongo.db.users.update_one({"_id":ObjectId(id)}, {'$set':data})
            #print("response",db_response.matched_count)
            if db_response.matched_count > 0:            
                return jsonify({'message': 'record updated'}), 200
            else:
                return jsonify({'message': 'error on record updated'}), 400   
        else:
            return jsonify({'message': 'Bad request parameters: {}'.format(data['message'])}), 400
Ejemplo n.º 11
0
def register():
    ''' register user endpoint '''
    users = len(json.loads(dumps(mongo.db.users.find())))
    if len == 0:
        data = validate_user(request.get_json())
        if data['ok']:
            
            data = data['data']
            
            if data['password'] != None: 
                data['password'] = flask_bcrypt.generate_password_hash(
                    data['password'])
            data["createdAT"] = datetime.datetime.utcnow()            
            mongo.db.users.insert_one(data)
            return jsonify({'message': 'User created successfully!'}), 200
        else:
            return jsonify({'message': 'Bad request parameters: {}'.format(data['message'])}), 400
    else:
        return jsonify({'message': 'can not created first user'}), 400
Ejemplo n.º 12
0
def users():
    ''' example to get extra data from annotation '''
    #print("extraData",request.extraData)
    ''' route read user '''
    if request.method == 'GET':
        query = request.args
        data = json.loads(dumps(mongo.db.users.aggregate([{'$addFields': {"_id": { '$toString':'$_id'}}}])))
        print("data",data)
        #print("len",len(data))
        return jsonify(data), 200
    if request.method == 'POST':
        data = validate_user(request.get_json())
        if data['ok']:
            data = data['data']
            if 'password' in data:
                data['password'] = flask_bcrypt.generate_password_hash(
                    data['password'])
            data["createdAT"] = datetime.datetime.utcnow()
            mongo.db.users.insert_one(data)
            return jsonify({'message': 'User created successfully!'}), 200
        else:
            return jsonify({'message': 'Bad request parameters: {}'.format(data['message'])}), 400
Ejemplo n.º 13
0
 def test_good_data(self):
     good_data = {"email": "*****@*****.**", "password": "******"}
     valid_data = validate_user(good_data)
     self.assertTrue(valid_data['ok'])