def get_user(): page, per_page, offset = get_page_items() paginate = request.args.get('paginate', 'true').lower() paginate = False if paginate == 'false' else True user_ids = request.args.get('userIds', None) if user_ids: user_ids = [ user_id for user_id in user_ids.split(',') if ObjectId.is_valid(user_id) ] users = UserService.get_users(user_ids=user_ids, paginate=False) else: q = request.args.get('q', '') emails = [ email for email in request.args.get('emails', '').split(',') if AuthService.validate_email(email) ] users = UserService.get_users(query=q, page=page, limit=per_page, emails=emails, paginate=paginate) if users.get('data'): return ResponseDto(status=0, result=users).to_json() return ResponseDto(status=-1, msg='No User Found.').to_json()
def get_slot(): page, per_page, offset = get_page_items() paginate = request.args.get('paginate', 'true').lower() paginate = False if paginate == 'false' else True slot_ids = request.args.get('slotIds', None) order_by = request.args.get('orderBy', '-created_at') if slot_ids: slot_ids = [ slot_id for slot_id in slot_ids.split(',') if ObjectId.is_valid(slot_id) ] slots = CalendarService.get_slots(slot_ids=slot_ids, paginate=False, order_by=order_by) else: start_ts = request.args.get('startTimestamp', None) end_ts = request.args.get('endTimestamp', None) user = request.args.get('userEmail', None) if user: user = UserService.get_users(emails=[user], data_objects=True, paginate=False).first() if user is None: return ResponseDto( status=-1, msg="User is not present with this email.").to_json() booked_by = request.args.get('bookedBy', None) if booked_by: booked_by = UserService.get_users(emails=[booked_by], data_objects=True, paginate=False).first() if booked_by is None: return ResponseDto( status=-1, msg="Booking user is not present with this email." ).to_json() slots = CalendarService.get_slots(page=page, limit=per_page, user=user, booked_by=booked_by, end_ts=end_ts, order_by=order_by, start_ts=start_ts, paginate=paginate) if slots.get('data'): return ResponseDto(status=0, result=slots).to_json() return ResponseDto(status=-1, msg='No Slot Found.').to_json()
def get_session_user_by_email(email): """Returns the session user instance for given user email""" user = UserService.get_users(emails=[email], paginate=False, data_objects=True).first() if user: return SessionUser(email=user.email, name=user.name) return None
def update(self, slot_data): if "startTimestamp" in slot_data: self.start_ts = datetime.fromtimestamp( slot_data.get("startTimestamp")) if "endTimestamp" in slot_data: self.start_ts = datetime.fromtimestamp( slot_data.get("startTimestamp")) if "bookedBy" in slot_data: self.booked_by = UserService.get_users( emails=[slot_data.get('bookedBy')], data_objects=True, paginate=False).first() self.save() return {'status': True, 'data': self.to_dict()}
def login(email, password, remember): """ Log in a user into the application and returns a session user object.""" # check if user actually exists user = UserService.get_users(emails=[email], paginate=False, data_objects=True).first() # take the user supplied password, hash it, and compare it to the hashed password in database if not user or not check_password_hash(user.password, password): return { 'value': False, 'error': 'Please check your login details.' } # if the above check passes, then we know the user has the right credentials if AuthService.login_user_wrapper(user.email, remember): session_user = AuthService.get_session_user_by_email(email) return { 'value': True, 'data': session_user.to_dict(), 'msg': 'User logged in successfully' } return {'value': False, 'error': 'Operation unsuccessful'}
def get_users(): user_service = UserService() users = user_service.get_users() #user = user_service.get_current_user() return render_template("users.html", users=users)