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()
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()
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()
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)))
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))
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)))
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()