Пример #1
0
class PushNotificationSearcher:
    m_queryExecutor = QueryExecuter()
    m_helper = SearcherHelper()
    typeConfig = list()

    def handle(self, pushNotificationSearchPb):
        assert pushNotificationSearchPb is not None, "PushNotificationSearchReq cannot be empty"
        self.typeConfig.clear();
        self.validate(pushNotificationSearchPb)
        subquery = self.getWokerConfig()
        return self.m_queryExecutor.search(query=subquery, table=Tables.PUSH_NOTIFICATON.name)

    def getWokerConfig(self):
        subQuery = '';
        i = 0
        for data in self.typeConfig:
            subQuery = " " + subQuery + " " + data
            if len(self.typeConfig) - 1 == i:
                continue
            subQuery = " " + subQuery + " " + SearcherConfig.AND
            i = i + 1
        return subQuery

    def validate(self, pushNotificationSearchPb):
        if (pushNotificationSearchPb.type.personType != PersonTypeEnum.UNKNOWN_PERSON_TYPE):
            self.typeConfig.append(
                self.m_helper.getEqualToCondition(cond=PushNotificationSearchConfig.PERSON_TYPE, value=PersonTypeEnum.Name(pushNotificationSearchPb.type.personType)))
        if(Strings.notEmpty(pushNotificationSearchPb.workerRef.dbInfo.id)):
            self.typeConfig.append(
                self.m_helper.getEqualToCondition(cond=PushNotificationSearchConfig.WORKER_REF, value=pushNotificationSearchPb.workerRef.dbInfo.id))
class CreateLoginEntity:
    m_entityId = EntityService()
    m_helper = EntityHelper()
    m_queryExecutor = QueryExecuter()
    m_converter = ConvertPbToJSON()
    builder = None
    id = None

    def start(self, builder):
        self.builder = builder
        self.controlFlow(currentState=States.GET_ENTITY_ID)

    def done(self):
        return self.builder

    def getEntityId(self):
        self.id = self.m_entityId.get()
        self.controlFlow(currentState=States.CREATE_LOGIN_ENTITY)

    def createEntityId(self):
        loginEntity = self.m_helper.createEntity(id=self.id, builder=self.builder)
        self.builder = self.m_queryExecutor.create(builder=loginEntity,table=Tables.LOGIN.name)
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.CREATE_LOGIN_ENTITY):
            self.createEntityId()
        elif (currentState == States.DONE):
            self.done()
Пример #3
0
class ConsumerSearchEntity:
    m_helper = EntityHelper()
    m_query = QueryExecuter()
    m_searchHandler = ConsumerSearcher()
    m_converterPbtoJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    builder = None
    id = None
    consumerResp = None
    consumerSearchResponse = ConsumerSearchResponsePb()

    def start(self, consumersearchreqPb):
        self.builder = consumersearchreqPb
        self.controlFlow(currentState=States.GET_SEARCH)

    def getSearch(self):
        consumerResp = self.m_searchHandler.handle(consumerpb=self.builder)
        if (consumerResp != None):
            self.consumerResp = consumerResp
        self.controlFlow(currentState=States.FORM_RESPONSE)

    def getFormResponse(self):
        if (self.consumerResp != None):
            self.consumerSearchResponse = self.m_helper.consumerRespose(
                consumerResp=self.consumerResp)
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_SEARCH):
            self.getSearch()
        elif (currentState == States.FORM_RESPONSE):
            self.getFormResponse()
        elif (currentState == States.DONE):
            self.done()
class GetPushNotificationEntity:
    m_helper = EntityHelper()
    m_queryExecutor = QueryExecuter()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    builder = None
    id = None

    def start(self, id):
        self.id = id
        self.controlFlow(currentState=States.GET_ENTITY_ID)

    def done(self):
        return self.builder

    def getEntityId(self):
        pushNotificationPb = self.m_queryExecutor.get(
            id=self.id, table=Tables.PUSH_NOTIFICATON.name)
        if (pushNotificationPb != None):
            self.builder = self.m_converterJsonToPb.converjsontoPBProper(
                response=pushNotificationPb,
                instanceType=pushnotification_pb2.PushNotificationPb())
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.DONE):
            self.done()
class GetWorkerTypeEntity:
    m_helper = EntityHelper()
    m_queryExecutor = QueryExecuter()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    builder = None
    id = None

    def start(self, id):
        self.id = id
        self.controlFlow(currentState=States.GET_ENTITY_ID)

    def done(self):
        return self.builder

    def getEntityId(self):
        workerPb = self.m_queryExecutor.get(id=self.id,
                                            table=Tables.WORKER_TYPE.name)
        if (workerPb != None):
            self.builder = self.m_converterJsonToPb.converjsontoPBProper(
                response=workerPb, instanceType=workertype_pb2.WorkertypePb())
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.DONE):
            self.done()
Пример #6
0
class UpdateLoginEntity:
    m_helper = EntityHelper()
    m_getEntity = GetLoginEntity()
    m_queryExecutor = QueryExecuter()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    oldPb = None
    builder = None
    id = None

    def start(self, id, builder):
        self.id = id
        self.builder = builder
        self.controlFlow(currentState=States.GET_ENTITY_ID)

    def done(self):
        return self.builder

    def getEntityId(self):
        self.m_getEntity.start(id=self.id)
        self.oldPb = self.m_getEntity.done()
        self.controlFlow(currentState=States.UPDATE_ENTITY_ID)

    def updateEntity(self):
        newPb = self.m_queryExecutor.update(id=self.id,builder=self.builder,table=Tables.LOGIN.name)
        self.builder = newPb
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.UPDATE_ENTITY_ID):
            self.updateEntity()
        elif (currentState == States.DONE):
            self.done()
Пример #7
0
class CreateWorkerTypeEntity:
    m_entityId = EntityService()
    m_helper = EntityHelper()
    m_queryExecutor = QueryExecuter()
    builder = None
    id = None

    def start(self, builder):
        self.builder = builder
        self.controlFlow(currentState=States.CREATE_WORKER_TYPE_ENTITY)

    def done(self):
        return self.builder

    def getEntityId(self):
        self.id = self.m_entityId.get()
        self.controlFlow(currentState=States.CREATE_WORKER_TYPE_ENTITY)

    def createEntityId(self):
        #workerTypeEntity = self.m_helper.createEntity(id=self.id, builder=self.builder)
        self.builder = self.m_queryExecutor.create(builder=self.builder,table=Tables.WORKER_TYPE.name)
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.CREATE_WORKER_TYPE_ENTITY):
            self.createEntityId()
        elif (currentState == States.DONE):
            self.done()
class CountConsumerEntity:
    m_queryExecutor = QueryExecuter()
    m_consumerserchreqPb = ConsumerSearchRequestPb()
    m_converterJsonToPb = ConvertJSONToPb()
    m_consumerserchresPb = ConsumerSearchResponsePb()
    m_countHandler = ConsumerCounter()

    builder = None

    def start(self, consumerSearchPb):
        self.builder = consumerSearchPb
        self.controlFlow(currentState=States.GET_COUNT)

    def done(self):
        return self.m_consumerserchresPb

    def getCount(self):
        consumerPb = self.m_countHandler.handle(consumerpb=self.builder)
        if (consumerPb != None):
            self.m_consumerserchresPb.summary.totalHits = consumerPb
        # self.m_queryExecutor.count(table, subquery)
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_COUNT):
            self.getCount()
        elif (currentState == States.DONE):
            self.done()
class UpdateConsumerEntity:
    m_helper = EntityHelper()
    m_getEntity = GetConsumerEntity()
    m_queryExecutor = QueryExecuter()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    m_compareConsumerPb = ConsumerComparetor()
    oldPb = None
    builder = None
    id = None

    def start(self, id, builder):
        self.id = id
        self.builder = builder
        self.controlFlow(currentState=States.GET_ENTITY_ID)

    def done(self):
        return self.builder

    def getEntityId(self):
        self.m_getEntity.start(id=self.id)
        self.oldPb = self.m_getEntity.done()
        if (self.oldPb == None):
            self.controlFlow(currentState=States.DONE)
        self.controlFlow(currentState=States.COMPARE_PB)

    def comaprePb(self):
        self.m_compareConsumerPb.compareConsumerPb(oldPb=self.oldPb,
                                                   newPb=self.builder)
        self.controlFlow(currentState=States.UPDATE_ENTITY_ID)

    def updateEntity(self):
        newPb = self.m_queryExecutor.update(id=self.id,
                                            builder=self.builder,
                                            table=Tables.CONSUMER_DATA.name)
        self.builder = newPb
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.COMPARE_PB):
            self.comaprePb()
        elif (currentState == States.UPDATE_ENTITY_ID):
            self.updateEntity()
        elif (currentState == States.DONE):
            self.done()
class PushNotificationSearchEntity:
    m_helper = EntityHelper()
    m_queryExecutor = QueryExecuter()
    m_searchHandler = PushNotificationSearcher()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    builder = None
    id = None
    Resp = None
    pushNotificationSearchResponse = PushNotificationSearchResponsePb()

    def start(self, pushNotificationSearchReqPb):
        self.builder = pushNotificationSearchReqPb
        self.controlFlow(currentState=States.GET_SEARCH)

    def done(self):
        return self.Resp

    def getSearch(self):
        pushNotificatonResp = self.m_searchHandler.handle(
            pushNotificationSearchPb=self.builder)
        if (pushNotificatonResp != None):
            self.Resp = pushNotificatonResp
        self.controlFlow(currentState=States.FORM_RESPONSE)

    def getFormResponse(self):
        if (self.Resp != None):
            self.Resp = self.m_helper.pushNotificationResponse(
                pushNotificationResp=self.Resp)
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_SEARCH):
            self.getSearch()
        elif (currentState == States.FORM_RESPONSE):
            self.getFormResponse()
        elif (currentState == States.DONE):
            self.done()
class WorkerTypeSearchEntity:
    m_helper = EntityHelper()
    m_queryExecutor = QueryExecuter()
    m_searchHandler = WorkerTypeSearcher()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    builder = None
    id = None
    workerTypeResp = None
    workerTypeSearchResponse = WorkerTypeSearchResponsePb()

    def start(self, workerTypePb):
        self.builder = workerTypePb
        self.controlFlow(currentState=States.GET_SEARCH)

    def done(self):
        return self.workerTypeSearchResponse

    def getSearch(self):
        workerTypeResp = self.m_searchHandler.handle(workerTypepb=self.builder)
        if (workerTypeResp != None):
            self.workerTypeResp = workerTypeResp
        self.controlFlow(currentState=States.FORM_RESPONSE)

    def getFormResponse(self):
        if (self.workerTypeResp != None):
            self.workerTypeSearchResponse = self.m_helper.workerTypeResponse(
                workerTpeResp=self.workerTypeResp)
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_SEARCH):
            self.getSearch()
        elif (currentState == States.FORM_RESPONSE):
            self.getFormResponse()
        elif (currentState == States.DONE):
            self.done()
class WorkerTypeSearcher:
    m_queryExecutor = QueryExecuter()
    m_helper = SearcherHelper()
    typeConfig = list()

    def handle(self, workerTypepb):
        assert workerTypepb is not None, "WorkerPb cannot be empty"
        self.typeConfig.clear()
        self.validate(workerTypepb)
        subquery = self.getWokerTypeConfig()
        return self.m_queryExecutor.search(query=subquery,
                                           table=Tables.WORKER_TYPE.name)

    def getWokerTypeConfig(self):
        subQuery = ''
        i = 0
        for data in self.typeConfig:
            subQuery = " " + subQuery + " " + data
            if len(self.typeConfig) - 1 == i:
                continue
            subQuery = " " + subQuery + " " + SearcherConfig.AND
            i = i + 1
        return subQuery

    def validate(self, workerpb):
        if (workerpb.dbInfo.lifeTime != StatusEnum.UNKNOWN_STATUS):
            self.typeConfig.append(
                self.m_helper.getEqualToCondition(
                    cond=WorkerTypeSearchConfig.LIFETIME,
                    value=StatusEnum.Name(workerpb.dbInfo.lifeTime)))

        if (workerpb.workerType != UNKNOWN_WORKER_TYPE):
            self.typeConfig.append(
                self.m_helper.getEqualToCondition(
                    cond=WorkerTypeSearchConfig.WORKER_TYPE,
                    value=WorkerTypeEnum.Name(workerpb.workerType)))
Пример #13
0
class LoginSearcher:
    m_queryExecutor = QueryExecuter()
    m_helper = SearcherHelper()
    typeConfig = list()

    def handle(self, loginpb):
        assert loginpb is not None, "loginpb cannot be empty"
        self.typeConfig.clear();
        self.validate(loginpb)
        subquery = self.getLoginConfig()
        return self.m_queryExecutor.search(query=subquery, table=Tables.LOGIN.name)

    def getLoginConfig(self):
        subQuery = '';
        i = 0
        for data in self.typeConfig:
            subQuery = " " + subQuery + " " + data
            if len(self.typeConfig) - 1 == i:
                continue
            subQuery = " " + subQuery + " " + SearcherConfig.AND
            i = i + 1
        return subQuery

    def validate(self, loginpb):
        if (loginpb.lifeTime != StatusEnum.UNKNOWN_STATUS):
            self.typeConfig.append(
                self.m_helper.getEqualToCondition(cond=loginSearchConfig.LIFETIME, value=StatusEnum.Name(loginpb.lifeTime)))
        if (Strings.notEmpty(loginpb.login.contactDetails.email.localPart) and Strings.notEmpty(
                loginpb.login.contactDetails.email.domain)):
            self.typeConfig.append(self.m_helper.getEqualToCondition(cond=loginSearchConfig.EMAIL_LOCAL_PART,
                                                                     value=loginpb.login.contactDetails.email.localPart))
            self.typeConfig.append(self.m_helper.getEqualToCondition(cond=loginSearchConfig.EMAIL_DOMAIN_PART,
                                                                     value=loginpb.login.contactDetails.email.domain))
        if (Strings.notEmpty(loginpb.login.contactDetails.primaryMobile.number)):
            self.typeConfig.append(self.m_helper.getEqualToCondition(cond=loginSearchConfig.PRIMARY_MOBILE_NO,
                                                                     value=loginpb.login.contactDetails.primaryMobile.number))
Пример #14
0
class ConsumerSearcher:
    m_queryExecutor = QueryExecuter()
    m_helper = SearcherHelper()
    typeConfig = list()

    def handle(self, consumerpb):
        assert consumerpb is not None, "ConsumerPb cannot be empty"
        self.typeConfig.clear()
        self.validate(consumerpb)
        subquery = self.getConsumerConfig()
        return self.m_queryExecutor.search(query=subquery,
                                           table=Tables.CONSUMER_DATA.name)

    def getConsumerConfig(self):
        subQuery = ''
        i = 0
        for data in self.typeConfig:
            subQuery = " " + subQuery + " " + data
            if len(self.typeConfig) - 1 == i:
                continue
            if len(self.typeConfig) != 1:
                subQuery = "" + subQuery + "" + SearcherConfig.AND
            i = i + 1
        return subQuery

    def validate(self, consumerpb):
        if (consumerpb.lifeTime != StatusEnum.UNKNOWN_STATUS):
            self.typeConfig.append(
                self.m_helper.getCondition(cond=ConsumerSearchConfig.LIFETIME,
                                           value=StatusEnum.Name(
                                               (consumerpb.lifeTime))))
        if (Strings.notEmpty(consumerpb.contactDetails.email.localPart)
                and Strings.notEmpty(consumerpb.contactDetails.email.domain)):
            self.typeConfig.append(
                self.m_helper.getCondition(
                    cond=ConsumerSearchConfig.EMAIL_LOCAL_PART,
                    value=consumerpb.contactDetails.email.localPart))
            self.typeConfig.append(
                self.m_helper.getCondition(
                    cond=ConsumerSearchConfig.EMAIL_DOMAIN_PART,
                    value=consumerpb.contactDetails.email.domain))

        if (Strings.notEmpty(consumerpb.contactDetails.primaryMobile.number)):
            self.typeConfig.append(
                self.m_helper.getCondition(
                    cond=ConsumerSearchConfig.PRIMARY_MOBILE_NO,
                    value=consumerpb.contactDetails.primaryMobile.number))
        if (len(consumerpb.contactDetails.secondryMobile) > 0):
            self.typeConfig.append(
                self.m_helper.getConditionForCheckingInJsonArray(
                    listKey='contactDetails',
                    fieldKey='secondryMobile',
                    key='number',
                    value=consumerpb.contactDetais.primaryMobile.number))
        if (Strings.notEmpty(consumerpb.mobileNo.number)):
            self.typeConfig.append(
                self.m_helper.getOrCond(
                    cond1=self.m_helper.getCondition(
                        cond=ConsumerSearchConfig.PRIMARY_MOBILE_NO,
                        value=consumerpb.mobileNo.number),
                    cond2=self.m_helper.getConditionForCheckingInJsonArray(
                        listKey='contactDetails',
                        fieldKey='secondryMobile',
                        key='number',
                        value=consumerpb.mobileNo.number)))
Пример #15
0
class UpdatePushNotificationEntity:
    m_helper = EntityHelper()
    m_workerService = WorkerService()
    m_getEntity = GetPushNotificationEntity()
    m_queryExecutor = QueryExecuter()
    m_converterPbToJson = ConvertPbToJSON()
    m_converterJsonToPb = ConvertJSONToPb()
    m_comparePushNotificationPb = PushNotificationComparetor()
    oldPb = None
    builder = None
    id = None
    m_worker = None

    def start(self, id, builder):
        self.id = id
        self.builder = builder
        self.controlFlow(currentState=States.GET_ENTITY_ID)

    def done(self):
        return self.builder

    def getEntityId(self):
        self.m_getEntity.start(id=self.id)
        self.oldPb = self.m_getEntity.done()
        if (self.oldPb == None):
            self.controlFlow(currentState=States.DONE)
        self.controlFlow(currentState=States.COMPARE_PB)

    def comaprePb(self):
        self.m_comparePushNotificationPb.comaprePushNotifiactionPb(
            oldPb=self.oldPb, newPb=self.builder)
        self.controlFlow(currentState=States.UPDATE_ENTITY_ID)

    def updateEntity(self):
        newPb = self.m_queryExecutor.update(id=self.id,
                                            builder=self.builder,
                                            table=Tables.PUSH_NOTIFICATON.name)
        self.builder = newPb
        self.controlFlow(currentState=States.GET_WORKER)

    def getWorker(self):
        worker = self.m_workerService.get(id=self.builder.workerRef.dbInfo.id)
        if (worker != None):
            self.m_worker = worker
        self.controlFlow(currentState=States.UPDATE_PUSHNOTIFICATION_IN_WORKER)

    def updateWorker(self):
        self.m_worker.pushNotificationRef.name.canonicalName = self.builder.tokenId
        worker = self.m_workerService.update(id=self.m_worker.dbInfo.id,
                                             builder=self.m_worker)
        if (worker != None):
            self.m_worker = worker
        self.controlFlow(currentState=States.DONE)

    def controlFlow(self, currentState):
        if (currentState == States.GET_ENTITY_ID):
            self.getEntityId()
        elif (currentState == States.COMPARE_PB):
            self.comaprePb()
        elif (currentState == States.UPDATE_ENTITY_ID):
            self.updateEntity()
        elif (currentState == States.GET_WORKER):
            self.getWorker()
        elif (currentState == States.UPDATE_PUSHNOTIFICATION_IN_WORKER):
            self.updateWorker()
        elif (currentState == States.DONE):
            self.done()