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'}
Exemple #6
0
def get_users():
    user_service = UserService()
    users = user_service.get_users()
    #user = user_service.get_current_user()
    return render_template("users.html", users=users)