leadguru-jobs 0.460.0__py3-none-any.whl → 0.462.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.460.0
3
+ Version: 0.462.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -43,12 +43,12 @@ lgt_jobs/lgt_data/analytics.py,sha256=qo5nNFQxOTTk8i3tmCq0d3F9iaV9MTIR84SSi6uNrJ
43
43
  lgt_jobs/lgt_data/engine.py,sha256=OkTIIsVhb4o0dcDOzolb-NNTftzhJvsCuldxg1PvLUM,8113
44
44
  lgt_jobs/lgt_data/enums.py,sha256=tjl_Kx-BIT5uJBsZYXcFwo8oQYYjUE5u6n-iDO4QciY,1802
45
45
  lgt_jobs/lgt_data/helpers.py,sha256=58ycqKF1z5nAw0vs6yVCg-SQet107YHyKYXaQUc7M68,157
46
- lgt_jobs/lgt_data/model.py,sha256=r6mw2F-m5aTzKqk1jqSMZM-D2rVl893XIg5uC3yCf4I,28754
47
- lgt_jobs/lgt_data/mongo_repository.py,sha256=CZEGRjT7-12DbhykX6IskPoUT1tNS1zRbRGCQg5jnDg,42730
46
+ lgt_jobs/lgt_data/model.py,sha256=YGpIsN33xoOGaGCyHwlXWGE1HvCE0eynOhmJAswN7Ug,29141
47
+ lgt_jobs/lgt_data/mongo_repository.py,sha256=RLIKrIYjY2jv4ENaxBSy6QVKEiuoJA6fqHv9AmlFT2Y,43634
48
48
  lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  lgt_jobs/services/web_client.py,sha256=NdVK1Xl8IDqUDZKqYNq219WOO7DtLj3b4VFjP69_MQY,2047
50
50
  lgt_jobs/templates/new_message.html,sha256=I3J6YPz-uhGbGnuGc5d7Hxj0X4VzOtT8PqrQQGPJfc4,7002
51
- leadguru_jobs-0.460.0.dist-info/METADATA,sha256=XMAMHNuONrGQujT1QfL-Z2A5NQ_CBrmHCMMbcxhjhDk,1319
52
- leadguru_jobs-0.460.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
53
- leadguru_jobs-0.460.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
54
- leadguru_jobs-0.460.0.dist-info/RECORD,,
51
+ leadguru_jobs-0.462.0.dist-info/METADATA,sha256=4Y_i4FiMXfo1O1wz3INZZsGo-mFbCxWArsmrnP_yIq0,1319
52
+ leadguru_jobs-0.462.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
53
+ leadguru_jobs-0.462.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
54
+ leadguru_jobs-0.462.0.dist-info/RECORD,,
@@ -985,3 +985,18 @@ class UserVerificationModel(DictionaryModel):
985
985
  super().__init__()
986
986
  self.email = None
987
987
  self.created_at = datetime.now(UTC)
988
+
989
+
990
+ class UsersPage:
991
+ users: List[UserModel]
992
+ count: int = 0
993
+
994
+ def __init__(self, users: List[UserModel], count: int):
995
+ self.users = users
996
+ self.count = count
997
+
998
+ @staticmethod
999
+ def from_dic(dic: dict):
1000
+ users = [UserModel.from_dic(doc) for doc in dic.get('page', [])]
1001
+ count = dic.get('count', 0)
1002
+ return UsersPage(users=users, count=count)
@@ -9,7 +9,7 @@ from lgt_jobs.lgt_data.enums import SourceType
9
9
  from lgt_jobs.lgt_data.model import (LeadModel, BaseModel, UserModel, UserResetPasswordModel, BoardModel, BoardedStatus,
10
10
  DedicatedBotModel, SlackMemberInformation, UserTemplateModel, LinkedinContact,
11
11
  ExtendedUserLeadModel, UserLeadModel, ExtendedLeadModel, UserContact, ChatMessage,
12
- GroupedMessagesModel, UserVerificationModel)
12
+ GroupedMessagesModel, UserVerificationModel, UsersPage)
13
13
  from datetime import datetime, UTC
14
14
  from collections import OrderedDict
15
15
 
@@ -75,6 +75,24 @@ class UserMongoRepository(BaseMongoRepository):
75
75
 
76
76
  return [UserModel.from_dic(doc) for doc in self.collection().find(pipeline)]
77
77
 
78
+ def get_users_page(self, skip: int = 0, limit: int = 50, **kwargs):
79
+ pipeline = []
80
+ match_pipeline = {}
81
+ include_inactive = kwargs.get('include_inactive', False)
82
+ email = kwargs.get('email')
83
+ search = kwargs.get('search')
84
+ if not include_inactive:
85
+ match_pipeline['inactive'] = False
86
+ if email:
87
+ match_pipeline['email'] = email
88
+ if search:
89
+ match_pipeline['email'] = {'$regex': search, '$options': 'i'}
90
+ pipeline.append({'$match': match_pipeline})
91
+ pipeline.append({'$sort': {'created_at': -1}})
92
+ pipeline.extend([{'$facet': {'page': [{'$skip': skip}, {'$limit': limit}], 'count': [{'$count': 'count'}]}},
93
+ {'$project': {'page': 1, 'count': {'$first': "$count.count"}}}])
94
+ return UsersPage.from_dic(list(self.collection().aggregate(pipeline))[0])
95
+
78
96
 
79
97
  class UserLeadMongoRepository(BaseMongoRepository):
80
98
  collection_name = 'user_leads'