Exemple #1
0
 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()
Exemple #2
0
    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()
Exemple #3
0
    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
Exemple #4
0
    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)
Exemple #6
0
 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)
Exemple #7
0
 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)
Exemple #8
0
 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)
Exemple #9
0
 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)