def handle(self, text): words = text.split(" ") if len(words) < 2: return self.help() hsa_id = words[0] keyword = words[1].lower() self.report_data = " ".join(words[2:]) self.hsa = util.get_hsa(hsa_id) if self.hsa is None: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=hsa_id) elif keyword not in SUPPORTED_REPORT_KEYWORDS: self.respond(config.Messages.BAD_REPORT_KEYWORD, keyword=hsa_id) else: # we've got an hsa, we've got a keyword, let's rock # clarity over DRY if keyword == Reports.SOH: self._process_soh() elif keyword == Reports.EMERGENCY_SOH: self._process_emergency_soh() elif keyword == Reports.REC: self._process_rec() elif keyword == Reports.GIVE: self._process_give()
def handle(self, text): contact = None try: contact = get_hsa(text) except ContactRole.DoesNotExist, SupplyPoint.DoesNotExist: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=text) return
def handle(self, text): """ Check some preconditions, based on shared assumptions of these handlers. Calls handle custom if things go well, otherwise responds directly and doesn't call the subclass method. """ words = text.split(" ") hsa_id = words[0] self.hsa = util.get_hsa(hsa_id) if self.hsa is None: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=hsa_id) else: self.handle_custom(text)
def _process_give(self): words = self.report_data.split(" ") # TODO: this is too much copy-paste from the transfer handler if len(words) < 3: return self.help() hsa_id = words[0] remainder = " ".join(words[1:]) hsa = util.get_hsa(hsa_id) if hsa is None: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=hsa_id) else: stock_report = create_stock_report(Reports.GIVE, self.hsa.supply_point, remainder, self.msg.logger_msg) transfers = StockTransfer.create_from_transfer_report(stock_report, hsa.supply_point) send_transfer_responses(self.msg, stock_report, transfers, self.hsa, hsa)
def handle(self, text): words = text.split(" ") # need at least a keyword and 1 product + amount if len(words) < 3: return self.help() hsa_id = words[0] remainder = " ".join(words[1:]) hsa = util.get_hsa(hsa_id) if hsa is None: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=hsa_id) else: stock_report = create_stock_report(Reports.GIVE, self.msg.logistics_contact.supply_point, remainder, self.msg.logger_msg) transfers = StockTransfer.create_from_transfer_report(stock_report, hsa.supply_point) send_transfer_responses(self.msg, stock_report, transfers, self.msg.logistics_contact, hsa)
def handle(self, text): words = text.split(" ") # need at least a keyword and 1 product + amount if len(words) < 3: return self.help() hsa_id = words[0] remainder = " ".join(words[1:]) hsa = util.get_hsa(hsa_id) if hsa is None: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=hsa_id) else: stock_report = create_stock_report( Reports.GIVE, self.msg.logistics_contact.supply_point, remainder, self.msg.logger_msg) transfers = StockTransfer.create_from_transfer_report( stock_report, hsa.supply_point) send_transfer_responses(self.msg, stock_report, transfers, self.msg.logistics_contact, hsa)
def _process_give(self): words = self.report_data.split(" ") # TODO: this is too much copy-paste from the transfer handler if len(words) < 3: return self.help() hsa_id = words[0] remainder = " ".join(words[1:]) hsa = util.get_hsa(hsa_id) if hsa is None: self.respond(config.Messages.UNKNOWN_HSA, hsa_id=hsa_id) else: stock_report = create_stock_report(Reports.GIVE, self.hsa.supply_point, remainder, self.msg.logger_msg) transfers = StockTransfer.create_from_transfer_report( stock_report, hsa.supply_point) send_transfer_responses(self.msg, stock_report, transfers, self.hsa, hsa)