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
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
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
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
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
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
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
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
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
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
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
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
def test_good_data(self): good_data = {"email": "*****@*****.**", "password": "******"} valid_data = validate_user(good_data) self.assertTrue(valid_data['ok'])