| Line 1... |
Line 1... |
| 1 |
from bson import json_util
|
1 |
from bson import json_util
|
| 2 |
from bson.json_util import dumps
|
2 |
from bson.json_util import dumps
|
| 3 |
from datetime import datetime
|
3 |
from datetime import datetime, timedelta
|
| 4 |
from dtr import main
|
4 |
from dtr import main
|
| 5 |
from dtr.config import PythonPropertyReader
|
5 |
from dtr.config import PythonPropertyReader
|
| 6 |
from dtr.storage import Mongo
|
6 |
from dtr.storage import Mongo
|
| 7 |
from dtr.storage.DataService import Retailers, Users
|
7 |
from dtr.storage.DataService import Retailers, Users, CallHistory
|
| 8 |
from dtr.utils import FetchLivePrices, DealSheet as X_DealSheet, \
|
8 |
from dtr.utils import FetchLivePrices, DealSheet as X_DealSheet, \
|
| 9 |
UserSpecificDeals
|
9 |
UserSpecificDeals
|
| 10 |
from elixir import *
|
10 |
from elixir import *
|
| 11 |
from sqlalchemy.sql.expression import or_
|
11 |
from sqlalchemy.sql.expression import or_
|
| 12 |
import falcon
|
12 |
import falcon
|
| Line 570... |
Line 570... |
| 570 |
def on_post(self, req, resp, agentId, callType):
|
570 |
def on_post(self, req, resp, agentId, callType):
|
| 571 |
self.agentId = int(agentId)
|
571 |
self.agentId = int(agentId)
|
| 572 |
self.callType = callType
|
572 |
self.callType = callType
|
| 573 |
jsonReq = json.loads(req.stream.read(), encoding='utf-8')
|
573 |
jsonReq = json.loads(req.stream.read(), encoding='utf-8')
|
| 574 |
self.jsonReq = jsonReq
|
574 |
self.jsonReq = jsonReq
|
| - |
|
575 |
retailer = session.query(Retailers).filter_by(id=int(jsonReq.get('retailerId'))).first()
|
| - |
|
576 |
# if retailer is None:
|
| - |
|
577 |
# resp.body = "{\"result\":{\"message\":\"Retailer Does not Exist\", \"status\":\"Error\"}}"
|
| - |
|
578 |
# return
|
| 575 |
|
579 |
#
|
| 576 |
invalidNumber = self.invalidNumber
|
580 |
invalidNumber = self.invalidNumber
|
| 577 |
callLater = self.callLater
|
581 |
callLater = self.callLater
|
| 578 |
alreadyUser = self.alReadyUser()
|
582 |
alreadyUser = self.alReadyUser
|
| 579 |
verifiedLinkSent = self.verifiedLinkSent
|
583 |
verifiedLinkSent = self.verifiedLinkSent
|
| - |
|
584 |
self.retailerId = int(jsonReq.get('retailerid'))
|
| - |
|
585 |
self.retailer = session.query(Retailers).filter_by(id=self.retailerId).first()
|
| - |
|
586 |
self.callDisposition = jsonReq.get('calldispositiontype')
|
| - |
|
587 |
self.mobile = jsonReq.get('number')
|
| 580 |
|
588 |
|
| - |
|
589 |
self.callHistory = CallHistory()
|
| - |
|
590 |
self.callHistory.agent_id=self.agentId
|
| - |
|
591 |
self.callHistory.duration_sec = int(jsonReq.get("callduration"))
|
| - |
|
592 |
self.callHistory.disposition_description = jsonReq.get('calldispositiondescritption')
|
| - |
|
593 |
self.callHistory.call_time = datetime.strptime(jsonReq.get("calltime"), '%d/%m/%Y %H:%M:%S')
|
| - |
|
594 |
self.callHistory.mobile_number = self.mobile
|
| - |
|
595 |
self.callHistory.sms_verified = 0
|
| - |
|
596 |
|
| 581 |
dispositionMap = { 'call_later':callLater,
|
597 |
dispositionMap = { 'call_later':callLater,
|
| 582 |
'ringing_no_answer':callLater,
|
598 |
'ringing_no_answer':callLater,
|
| 583 |
'not_reachable':callLater,
|
599 |
'not_reachable':callLater,
|
| 584 |
'switch_off':callLater,
|
600 |
'switch_off':callLater,
|
| 585 |
'invalid_no':invalidNumber,
|
601 |
'invalid_no':invalidNumber,
|
| Line 589... |
Line 605... |
| 589 |
'alreadyuser':alreadyUser,
|
605 |
'alreadyuser':alreadyUser,
|
| 590 |
'verified_link_sent':verifiedLinkSent
|
606 |
'verified_link_sent':verifiedLinkSent
|
| 591 |
}
|
607 |
}
|
| 592 |
dispositionMap[jsonReq.get('calldispositiontype')]()
|
608 |
dispositionMap[jsonReq.get('calldispositiontype')]()
|
| 593 |
|
609 |
|
| 594 |
retailer = session.query(Retailers).filter_by(id=jsonReq.get('retailerId')).one()
|
- |
|
| 595 |
if retailer is None:
|
- |
|
| 596 |
resp.body = "{\"result\":{\"message\":\"Retailer Does not Exist\", \"status\":\"Error\"}}"
|
- |
|
| 597 |
return
|
- |
|
| 598 |
|
610 |
|
| 599 |
resp.body = json.dumps(jsonReq, encoding='utf-8')
|
611 |
resp.body = json.dumps(jsonReq, encoding='utf-8')
|
| 600 |
|
612 |
|
| 601 |
def invalidNumber(self,):
|
613 |
def invalidNumber(self,):
|
| 602 |
callDisposition = self.jsonReq.get('calldispositiontype')
|
- |
|
| 603 |
dispositionDesc = self.jsonReq.get('calldispositiondescritption')
|
- |
|
| 604 |
retailerId = self.jsonReq.get('retailerid')
|
- |
|
| 605 |
mobile = self.jsonReq.get('number')
|
614 |
pass
|
| 606 |
callTime = self.jsonReq.get("calltime")
|
- |
|
| 607 |
callDuration = self.jsonReq.get("callduration")
|
- |
|
| 608 |
def callLater(self,):
|
615 |
def callLater(self,):
|
| 609 |
callDisposition = self.jsonReq.get('calldispositiontype')
|
616 |
if self.callDisposition == 'call_later':
|
| 610 |
dispositionDesc = self.jsonReq.get('calldispositiondescritption')
|
617 |
if self.dispositionDesc is not None:
|
| 611 |
retailerId = self.jsonReq.get('retailerid')
|
618 |
self.retailer.call_priority = 'system_initiated'
|
| - |
|
619 |
self.retailer.next_call_time = datetime.strptime(self.callHistory.disposition_description, '%d/%m/%Y %H:%M:%S')
|
| - |
|
620 |
self.callHistory.disposition_description = 'User requested to call on ' + self.callHistory.disposition_description
|
| - |
|
621 |
else:
|
| 612 |
mobile = self.jsonReq.get('number')
|
622 |
self.retailer.call_priority = 'user_initiated'
|
| 613 |
callTime = self.jsonReq.get("calltime")
|
623 |
self.retailer.next_call_time = self.callHistory.call_time + timedelta(days=1)
|
| 614 |
callDuration = self.jsonReq.get("callduration")
|
624 |
self.callHistory.disposition_description = 'User to be called next day'
|
| - |
|
625 |
self.retailer.status = 'retry' if self.callType == 'fresh' else 'fretry'
|
| - |
|
626 |
session.commit()
|
| - |
|
627 |
return True
|
| - |
|
628 |
|
| 615 |
def alReadyUser(self,):
|
629 |
def alReadyUser(self,):
|
| 616 |
print self.jsonReq
|
630 |
print self.jsonReq
|
| 617 |
callDisposition = self.jsonReq.get('calldispositiontype')
|
631 |
callDisposition = self.jsonReq.get('calldispositiontype')
|
| 618 |
dispositionDesc = self.jsonReq.get('calldispositiondescritption')
|
632 |
dispositionDesc = self.jsonReq.get('calldispositiondescritption')
|
| 619 |
retailerId = self.jsonReq.get('retailerid')
|
633 |
retailerId = self.jsonReq.get('retailerid')
|
| Line 654... |
Line 668... |
| 654 |
obj.title = retailer.title
|
668 |
obj.title = retailer.title
|
| 655 |
obj.contact1 = retailer.contact1
|
669 |
obj.contact1 = retailer.contact1
|
| 656 |
obj.contact2 = retailer.contact2
|
670 |
obj.contact2 = retailer.contact2
|
| 657 |
obj.address = retailer.address
|
671 |
obj.address = retailer.address
|
| 658 |
obj.id = retailer.id
|
672 |
obj.id = retailer.id
|
| 659 |
obj.scheduled = (retailer.call_priority == 'user_initiated')
|
673 |
obj.scheduled = (retailer.call_priority is not None)
|
| 660 |
return obj
|
674 |
return obj
|
| 661 |
|
675 |
|
| 662 |
|
676 |
|
| 663 |
class Mock(object):
|
677 |
class Mock(object):
|
| 664 |
pass
|
678 |
pass
|