def snedNotification(builder): service = SendPushNotificationService() m_converter = ConvertJSONToPb() m_convertPbtoJson = ConvertPbToJSON() builder = m_converter.converjsontoPBProper(response=builder, instanceType=pushnotification_pb2.PushNotificationRequestPb()) return m_convertPbtoJson.converPbtojson(service.sendNotification(pushNotificationRequestPb=builder))
def getLogin(builder): service = LoginModuleService() m_converter = ConvertJSONToPb() m_convertPbtoJson = ConvertPbToJSON() builder = m_converter.converjsontoPBProper( response=builder, instanceType=login_pb2.LoginRequestPb()) return m_convertPbtoJson.converPbtojson( service.login(loginRequestPb=builder))
def createRegistrationworker(builder): service = RegistrationWorkerService() m_converter = ConvertJSONToPb() m_convertPbtoJson = ConvertPbToJSON() builder = m_converter.converjsontoPBProper( response=builder, instanceType=registration_pb2.RegistrationRequestPb()) return m_convertPbtoJson.converPbtojson( service.registration(registrationRequestPb=builder))
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 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 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 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 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 WorkerCache(BasicCache): m_workerService = WorkerService() m_convertorJsonToPb = ConvertJSONToPb() m_convertorPbToJson = ConvertPbToJSON() def getUnchecked(self, key): if (self.get(key=key) != None): return self.m_convertorJsonToPb.converjsontoPBProper( response=self.get(key=key), instanceType=worker_pb2.WorkerPb()) else: self.set(key=key, value=self.m_convertorPbToJson.converPbtojsonString( builder=self.m_workerService.get(id=key))) return self.m_convertorJsonToPb.converjsontoPBProper( response=self.get(key=key), instanceType=worker_pb2.WorkerPb())
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 ResponseHandlerHelper: m_convertToJson = ConvertPbToJSON() def getProtobufToJSON(self, uipb): return json.dumps(json.loads( self.m_convertToJson.converPbtojson(uipb)), separators=(',', ':')) def sendValidResponse(self, uipb): return Response(self.getProtobufToJSON(uipb), status=200, mimetype='application/json') def getRequestData(self, request): if (not "query" in str(request.full_path)): data = request.full_path.replace(request.path, '') return data.replace("?", '') else: return request.args.get('query') def isJson(self, json): if (Strings.isEmpty(str(json))): return None elif ("{" in str(json)): if (self.json_validator(json)): return True else: return JSON_VALIDATION_ERROR else: return False def json_validator(data): try: json.loads(data) return True except ValueError as error: return False
def getWorkerType(id): service = WorkerTypeService() m_convertPbtoJson = ConvertPbToJSON() return m_convertPbtoJson.converPbtojson(service.get(id=id))
class UpdateQueryCF(): m_id = None m_pb = None m_response = None m_pbFromDb = None m_json = None m_table = None m_instance = None m_convertor = None m_comparetor = None m_check = False def __init__(self, comparetor, convertor, instance, table): self.m_convertor = convertor self.m_comparetor = comparetor self.m_table = table self.m_instance = instance m_convertToPb = ConvertJSONToPb() m_convertToJson = ConvertPbToJSON() m_getQueryExecutor = GetQueryExecutor() m_updateQueryExecutor = UpdateQueryExecutor() def start(self, id, pb): self.m_id = id self.m_pb = pb self.controlFlow(currentState=State.CHECK_ID_IS_EMPTY) def done(self): return self.m_pbFromDb def checkIdIsEmpty(self): if (self.m_id == None): assert True, "id Cannot be Empty" else: self.controlFlow(currentState=State.CHECK_PB_IS_EMPTY) def checkPbIsEmpty(self): if (self.m_pb == None): assert True, "Pb Cannot be Empty" else: self.controlFlow(currentState=State.GET_FROM_DB) def getFromDb(self): resp = self.m_getQueryExecutor.get(id=self.m_id, table=self.m_table.tableName()) if (resp != None): self.m_response = resp self.controlFlow(currentState=State.CONVERT_TO_PB) elif (self.m_pb.dbInfo.id != self.m_pbFromDb.dbInfo.id): raise Exception('id NOT_MATCHED you are updating wrong Entity ' + MessageToJson(self.m_pb)) else: # self.controlFlow(currentState=State.DONE) raise Exception('id NOT_FOUND or UNEXPECTED ERROR' + self.m_id) def convertJsonToPb(self): self.m_pbFromDb = self.m_convertToPb.converjsontoPBProper( response=self.m_response, instanceType=self.m_instance) if (self.m_pbFromDb == None): raise Exception('Error while Converting to Pb' + self.m_response) else: if (self.m_check): self.controlFlow(currentState=State.DONE) else: self.m_check = True self.controlFlow(currentState=State.COMPARE_BOTH_PBS) def comapreBothPbs(self): resp = self.m_comparetor.compare(newPb=self.m_pb, oldPb=self.m_pbFromDb) if (resp != None): self.m_pb = resp self.controlFlow(currentState=State.CONVERT_TO_JSON) else: raise Exception('UPDATE FAILED due to improper UiPb' + MessageToJson(self.m_pb)) def convertToJson(self): self.m_json = self.m_convertToJson.converPbtojsonString( builder=self.m_pb) if (self.m_json == None): raise Exception('Convert to json Failed' + MessageToJson(self.m_pb)) else: self.controlFlow(currentState=State.UPDATE_TO_DB) def updateToDb(self): resp = self.m_updateQueryExecutor.update( id=self.m_id, json=self.m_json, table=self.m_table.tableName()) if (resp == None): raise Exception('Update to database Failed' + MessageToJson(self.m_pb)) else: self.controlFlow(currentState=State.GET_FROM_DB) def controlFlow(self, currentState): if (currentState == State.CHECK_ID_IS_EMPTY): self.checkIdIsEmpty() elif (currentState == State.CHECK_PB_IS_EMPTY): self.checkPbIsEmpty() elif (currentState == State.GET_FROM_DB): self.getFromDb() elif (currentState == State.CONVERT_TO_PB): self.convertJsonToPb() elif (currentState == State.COMPARE_BOTH_PBS): self.comapreBothPbs() elif (currentState == State.CONVERT_TO_JSON): self.convertToJson() elif (currentState == State.UPDATE_TO_DB): self.updateToDb() elif (currentState == State.DONE): self.done()
def getConsumer(id): service = ConsumerService() m_convertPbtoJson = ConvertPbToJSON() return m_convertPbtoJson.converPbtojson(service.get(id=id))
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()
class DatabaseHelper: m_pbConvertor = ConvertPbToJSON() BASE_QUERY = "SELECT * FROM" BASE_UPDATE_QUERY = "UPDATE" BASE_INSERT_QUERY = 'INSERT INTO' BASE_RAW_DATA_QUERY = "SELECT raw_data FROM " BASE_COUNT_RAW_DATA_QUERY = "SELECT count(raw_data) FROM " def getBaseQuery(self): return self.BASE_QUERY def getQuotedString(self, data): return '"' + data + '"' def getSingleQuotedString(self, data): return "'" + data + "'" def getEntityQuery(self, data): return self.BASE_QUERY + ' "' + data + '"' def updateEntityQuery(self, data, value): return self.BASE_UPDATE_QUERY + ' "' + data + '"' + " SET dbid = " + value + " WHERE id = 1" def getInsertQuery(self, table, data): if (table == Tables.WORKER_TYPE.name): print(type(data.workerType)) return self.BASE_INSERT_QUERY + ' "' + table + '"' + "( dbid ,workertype, raw_data) " + " VALUES " + "(" + self.getSingleQuotedString( data.dbInfo.id) + " , " + self.getSingleQuotedString( str(WorkerTypeEnum.Name(data.workerType)) ) + " , " + self.m_pbConvertor.converPbtojsonString( builder=data) + ");" else: return self.BASE_INSERT_QUERY + ' "' + table + '"' + "( dbid , raw_data) " + " VALUES " + "(" + self.getSingleQuotedString( data.dbInfo.id ) + " , " + self.m_pbConvertor.converPbtojsonString( builder=data) + ");" def getRowDataQuery(self, table, id): return self.BASE_RAW_DATA_QUERY + ' "' + table + '"' + "WHERE dbid = " + self.getSingleQuotedString( id) + ";" def updateRawDataEntityQuery(self, id, newPb, table): return self.BASE_UPDATE_QUERY + ' "' + table + '"' + " SET raw_data = " + self.m_pbConvertor.converPbtojsonString( builder=newPb) + " WHERE dbid = " + self.getSingleQuotedString( id) + " ;" def getAllTableQuery(self): return "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'" def getCreateTableQuery(self, table): return 'CREATE TABLE' + '"' + table + '"' + '(id serial PRIMARY KEY,dbid VARCHAR (255) UNIQUE NOT NULL,raw_data json NOT NULL);' def getCreateEntityTableQuery(self, table): return 'CREATE TABLE ' + '"' + table + '"' + ' (id serial PRIMARY KEY,dbid VARCHAR (255) UNIQUE NOT NULL);' def getWorkerTypeTableQuery(self, table): return 'CREATE TABLE' + '"' + table + '"' + '(id serial PRIMARY KEY,dbid VARCHAR (255) UNIQUE NOT NULL,workertype VARCHAR (255) UNIQUE NOT NULL,raw_data json NOT NULL);' def getSearchQuery(self, table, subquery): return self.BASE_RAW_DATA_QUERY + '"' + table + '" WHERE ' + subquery + ';' def getCountQuery(self, table, subquery): if (Strings.isEmpty(subquery)): return self.BASE_COUNT_RAW_DATA_QUERY + '"' + table + '" WHERE ' + 'true' + ';' else: return self.BASE_COUNT_RAW_DATA_QUERY + '"' + table + '" WHERE ' + subquery + ';'
def getPushNotification(id): service = PushNotificationService() m_convertPbtoJson = ConvertPbToJSON() return m_convertPbtoJson.converPbtojson(service.get(id=id))
class CreateQueryCF(): m_pb = None m_pbFromDb = None m_response = None m_instance = None m_table = None def __init__(self, instance, table): self.m_table = table self.m_instance = instance m_convertToPb = ConvertJSONToPb() m_convertToJson = ConvertPbToJSON() m_getQueryExecutor = GetQueryExecutor() m_createQueryExecutor = CreateQueryExecuter() def start(self, m_pb): self.m_pb = m_pb self.controlFlow(currentState=State.CHECK_UIPB_IS_EMPTY) def done(self): return self.m_pbFromDb def checkUiPbIsEmpty(self): if (self.m_pb == None): assert True, "table Name Cannot be Empty" else: self.controlFlow(currentState=State.CONVERT_TO_JSON) def convertToJson(self): self.m_response = self.m_convertToJson.converPbtojsonString( builder=self.m_pb) if (self.m_response != None): self.controlFlow(currentState=State.INSERT_TO_DB) else: # self.controlFlow(currentState=State.DONE) raise Exception('Convert to json Failed' + MessageToJson(self.m_pb)) def insertInDb(self): resp = self.m_createQueryExecutor.create( id=self.m_pb.dbInfo.id, json=self.m_response, table=self.m_table.tableName()) if (resp == None): # self.controlFlow(currentState=State.DONE) raise Exception('Insert to json Failed' + MessageToJson(self.m_pb)) else: self.m_response = resp self.controlFlow(currentState=State.GET_FROM_DB) def getFromDb(self): resp = self.m_getQueryExecutor.get(id=self.m_pb.dbInfo.id, table=self.m_table.tableName()) if (resp != None): self.m_response = resp self.controlFlow(currentState=State.CONVERT_TO_PB) else: # self.controlFlow(currentState=State.DONE) raise Exception('id NOT_FOUND or UNEXPECTED ERROR' + self.m_pb.dbInfo.id) def convertJsonToPb(self): self.m_pbFromDb = self.m_convertToPb.converjsontoPBProper( response=self.m_response, instanceType=self.m_instance) if (self.m_pbFromDb == None): raise Exception('Error while Converting to Pb' + self.m_response) else: self.controlFlow(currentState=State.DONE) def controlFlow(self, currentState): if (currentState == State.CHECK_UIPB_IS_EMPTY): self.checkUiPbIsEmpty() elif (currentState == State.CONVERT_TO_JSON): self.convertToJson() elif (currentState == State.INSERT_TO_DB): self.insertInDb() elif (currentState == State.GET_FROM_DB): self.getFromDb() elif (currentState == State.CONVERT_TO_PB): self.convertJsonToPb() elif (currentState == State.DONE): self.done()