def __erp_update(self): """Sync registers. """ # Update periodically bgERP. self.__erp_service_update_timer.update() if self.__erp_service_update_timer.expired: self.__erp_service_update_timer.clear() ztm_regs = self.__registers.by_scope(Scope.Device) ztm_regs = ztm_regs.new_then(60) ztm_regs_dict = ztm_regs.to_dict() update_state = self.__erp.sync(ztm_regs_dict) if update_state is not None: # is not None if self.__registers is not None: self.__registers.update(update_state) # Clear the last atendies. (Eml6287) self.__registers.write("ac.last_update_attendees", str([])) # (Eml6287) # (Request to stop the queue from MG @ 15.01.2021) # not_send_len = self.__registers_snapshot.qsize() # if not_send_len > 0: # Get from the queue. # snapshot = self.__registers_snapshot.get() # Send the firs from the queue. # self.__erp.sync(snapshot) else: GlobalErrorHandler.log_no_connection_erp(self.__logger) self.__erp_state_machine.set_state(ERPState.Login)
def login(self, credentials): """Log in to the service. Parameters ---------- credentials : mixed Credentials of the device for the service. Returns ------- bool Success """ login_state = False uri = self.host + self.__api_login try: response = requests.post(uri, data=credentials, timeout=self.timeout) if response is not None: # Take new login session key. if response.status_code == 200: data = response.json() if data is not None: # Authorization token. if "token" in data: self.__session.save(data["token"]) self.__session.load() login_state = self.__session.session != "" # ERP identity. if "bgerp_id" in data: self.__erp_id = data["bgerp_id"] # Use saved session key. elif response.status_code == 423: self.__session.load() login_state = self.__session.session != "" self.__erp_id = credentials["bgerp_id"] # Not authorized. elif response.status_code == 403: login_state = False else: self.__logger.error("HTTP Error code: {}".format( response.status_code)) login_state = False except Exception as ex: GlobalErrorHandler.log_no_connection_erp(self.__logger) self.__logger.error(traceback.format_exc()) login_state = False return login_state