leadguru-jobs 0.460.0__tar.gz → 0.462.0__tar.gz

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.
Files changed (61) hide show
  1. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/model.py +15 -0
  4. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/mongo_repository.py +19 -1
  5. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/MANIFEST.in +0 -0
  6. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/README.md +0 -0
  7. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
  8. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  9. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  10. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/leadguru_jobs.egg-info/requires.txt +0 -0
  11. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  12. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/__init__.py +0 -0
  13. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/assets/images/arrow.png +0 -0
  14. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/assets/images/firework.png +0 -0
  15. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/assets/images/lock.png +0 -0
  16. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/assets/images/logo.png +0 -0
  17. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/assets/images/mail.png +0 -0
  18. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/basejobs.py +0 -0
  19. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/env.py +0 -0
  20. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/__init__.py +0 -0
  21. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/analytics.py +0 -0
  22. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/archive_leads.py +0 -0
  23. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
  24. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/chat_history.py +0 -0
  25. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
  26. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/mass_message.py +0 -0
  27. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/send_code.py +0 -0
  28. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
  29. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  30. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/user_balance_update.py +0 -0
  31. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
  32. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/__init__.py +0 -0
  33. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
  34. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +0 -0
  35. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
  36. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
  37. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
  38. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/helpers.py +0 -0
  39. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/lgt_logging.py +0 -0
  40. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
  41. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/pubsub/command.py +0 -0
  42. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
  43. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
  44. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
  45. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
  46. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
  47. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
  48. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/__init__.py +0 -0
  49. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/analytics.py +0 -0
  50. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/engine.py +0 -0
  51. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/enums.py +0 -0
  52. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/lgt_data/helpers.py +0 -0
  53. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/main.py +0 -0
  54. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/runner.py +0 -0
  55. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/services/__init__.py +0 -0
  56. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/services/web_client.py +0 -0
  57. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/simple_job.py +0 -0
  58. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/smtp.py +0 -0
  59. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/lgt_jobs/templates/new_message.html +0 -0
  60. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/setup.cfg +0 -0
  61. {leadguru_jobs-0.460.0 → leadguru_jobs-0.462.0}/setup.py +0 -0
@@ -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
@@ -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
@@ -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'