leadguru-jobs 0.419.0__tar.gz → 0.420.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.
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/PKG-INFO +1 -1
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/model.py +2 -1
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/mongo_repository.py +59 -12
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/services/web_client.py +2 -3
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/MANIFEST.in +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/README.md +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/leadguru_jobs.egg-info/requires.txt +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/basejobs.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/env.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/analytics.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/archive_leads.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/chat_history.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/mass_message.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/send_code.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/user_balance_update.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/helpers.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/lgt_logging.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/pubsub/command.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/analytics.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/engine.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/enums.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_data/helpers.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/main.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/runner.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/services/__init__.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/simple_job.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/smtp.py +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/templates/new_message_mail_template.html +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/setup.cfg +0 -0
- {leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/setup.py +0 -0
@@ -712,7 +712,7 @@ class BoardModel(BaseModel):
|
|
712
712
|
super().__init__()
|
713
713
|
self.name = None
|
714
714
|
self.user_id = None
|
715
|
-
self.statuses =
|
715
|
+
self.statuses: List[BoardedStatus] = []
|
716
716
|
self.is_primary = None
|
717
717
|
self.default = False
|
718
718
|
|
@@ -748,6 +748,7 @@ class BoardedStatus:
|
|
748
748
|
self.order = 0
|
749
749
|
self.is_primary = False
|
750
750
|
self.default = False
|
751
|
+
self.user_leads = 0
|
751
752
|
|
752
753
|
def to_dic(self):
|
753
754
|
self.id = self.name
|
@@ -708,6 +708,64 @@ class BoardsMongoRepository(BaseMongoRepository):
|
|
708
708
|
docs = self.collection().find(pipeline).sort('created_at', 1)
|
709
709
|
return [BoardModel.from_dic(doc) for doc in docs]
|
710
710
|
|
711
|
+
def get_with_stats(self, user_id: str, **kwargs):
|
712
|
+
is_primary = kwargs.get('is_primary')
|
713
|
+
default = kwargs.get('default')
|
714
|
+
name = kwargs.get('name')
|
715
|
+
match = {'user_id': to_object_id(user_id)}
|
716
|
+
|
717
|
+
if is_primary is not None:
|
718
|
+
match['is_primary'] = is_primary
|
719
|
+
|
720
|
+
if default is not None:
|
721
|
+
match['default'] = default
|
722
|
+
|
723
|
+
if name:
|
724
|
+
match['name'] = name
|
725
|
+
|
726
|
+
pipeline = [
|
727
|
+
{
|
728
|
+
'$match': match
|
729
|
+
},
|
730
|
+
{
|
731
|
+
'$unwind': {'path': '$statuses', 'preserveNullAndEmptyArrays': False}
|
732
|
+
},
|
733
|
+
{
|
734
|
+
'$lookup': {
|
735
|
+
'from': 'user_leads',
|
736
|
+
'as': 'statuses.user_leads',
|
737
|
+
'let': {'id': '$_id', 'status': '$statuses.name'},
|
738
|
+
'pipeline': [
|
739
|
+
{
|
740
|
+
'$match': {
|
741
|
+
'$expr': {
|
742
|
+
'$and': [
|
743
|
+
{'$eq': ['$board_id', '$$id']},
|
744
|
+
{'$eq': ['$status', '$$status']}
|
745
|
+
]
|
746
|
+
}
|
747
|
+
}
|
748
|
+
}
|
749
|
+
]
|
750
|
+
}
|
751
|
+
},
|
752
|
+
{
|
753
|
+
'$addFields': {'statuses.user_leads': {'$size': '$statuses.user_leads'}}
|
754
|
+
},
|
755
|
+
{
|
756
|
+
'$group': {
|
757
|
+
'_id': '$_id',
|
758
|
+
'statuses': {'$push': '$statuses'},
|
759
|
+
'name': {'$first': '$name'},
|
760
|
+
'created_at': {'$first': '$created_at'},
|
761
|
+
'user_id': {'$first': '$user_id'},
|
762
|
+
'is_primary': {'$first': '$is_primary'},
|
763
|
+
'default': {'$first': '$default'}}
|
764
|
+
},
|
765
|
+
{'$sort': {'created_at': 1}}]
|
766
|
+
|
767
|
+
return [BoardModel.from_dic(doc) for doc in self.collection().aggregate(pipeline)]
|
768
|
+
|
711
769
|
def get_primary(self, user_id: str):
|
712
770
|
return BoardModel.from_dic(self.collection().find_one({'user_id': to_object_id(user_id), 'is_primary': True}))
|
713
771
|
|
@@ -767,17 +825,6 @@ class DedicatedBotRepository(BaseMongoRepository):
|
|
767
825
|
docs = self.collection().find(pipeline)
|
768
826
|
return [DedicatedBotModel.from_dic(doc) for doc in docs]
|
769
827
|
|
770
|
-
def get_source_ids_for_user(self, user_id, source_type):
|
771
|
-
docs = self.collection().find({
|
772
|
-
'user_id': user_id,
|
773
|
-
'source.source_type': source_type
|
774
|
-
}, {
|
775
|
-
'_id': 0,
|
776
|
-
'source_id': '$source.source_id'
|
777
|
-
})
|
778
|
-
source_ids = [item['source_id'] for item in docs]
|
779
|
-
return source_ids
|
780
|
-
|
781
828
|
def get_one(self, **kwargs):
|
782
829
|
pipeline = self.__create_bots_filter(**kwargs)
|
783
830
|
return DedicatedBotModel.from_dic(self.collection().find_one(pipeline))
|
@@ -838,7 +885,7 @@ class DedicatedBotRepository(BaseMongoRepository):
|
|
838
885
|
pipeline["source.source_id"] = source_id
|
839
886
|
|
840
887
|
if server_id:
|
841
|
-
pipeline["servers"] = {'$elemMatch': {'id': server_id}}
|
888
|
+
pipeline["servers"] = {'$elemMatch': {'id': server_id, 'active': True}}
|
842
889
|
|
843
890
|
if active_server_id:
|
844
891
|
pipeline["servers"] = {'$elemMatch': {'id': active_server_id, 'deleted': False}}
|
@@ -18,7 +18,7 @@ class V3ServerClient(BaseHttpClient):
|
|
18
18
|
self.token = BillingServerClient.login(service_account_email, service_account_password)
|
19
19
|
|
20
20
|
def update_user_lead(self, message_id: str, email: str, slack_channel: str,
|
21
|
-
board_id: str = None, status: str = None
|
21
|
+
board_id: str = None, status: str = None) -> dict:
|
22
22
|
payload = {
|
23
23
|
'message_id': message_id,
|
24
24
|
'user_email': email
|
@@ -27,8 +27,7 @@ class V3ServerClient(BaseHttpClient):
|
|
27
27
|
update_lead_payload = {
|
28
28
|
'slack_channel': slack_channel,
|
29
29
|
'board_id': board_id,
|
30
|
-
'status': status
|
31
|
-
'followup_date': followup_date
|
30
|
+
'status': status
|
32
31
|
}
|
33
32
|
headers = self._create_default_headers()
|
34
33
|
return requests.post(f'{portal_url}/{self.api_version}/user_leads/update',
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/discord_client/__init__.py
RENAMED
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/discord_client/discord_client.py
RENAMED
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/discord_client/methods.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/__init__.py
RENAMED
File without changes
|
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/slack_client.py
RENAMED
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/lgt_common/slack_client/web_client.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{leadguru_jobs-0.419.0 → leadguru_jobs-0.420.0}/lgt_jobs/templates/new_message_mail_template.html
RENAMED
File without changes
|
File without changes
|
File without changes
|