def _verify_type(self, server, actual, expected, call): match = isinstance(actual, expected) if not match: error = "Method must return %s, error in: %s" % (expected.__name__, call) logger.error(error) result = ApiResult(call, ok=False, data=error) server.sendMessage(result.toJSON()) return match
def onMessage(self, msg, binary): if binary: return try: self._handler.process(self, msg) except Exception as e: logger.error('Unhandled exception: %s' % e) error = type(e).__name__ + ' from message: ' + msg result = ApiResult('Unknown', ok=False, data=error) self.sendMessage(result.toJSON())
def _load_data(self, server, msg): if 'call' not in msg: error = "Message missing 'call': %s" % msg logger.error(error) result = ApiResult(call=None, ok=False, data=error) server.sendMessage(result.toJSON()) return data = json.loads(msg) if 'args' not in data: data['args'] = {} return data
def _get_api_method(self, server, call): if 'lap' in call: method = getattr(api_lap, call) elif 'rider' in call: method = getattr(api_rider, call) elif 'session' in call: method = getattr(api_session, call) elif 'track' in call: method = getattr(api_track, call) else: method = getattr(api, call) if not method: error = "Method not implemented in API: %s" % call logger.error(error) result = ApiResult(call, ok=False, data=error) server.sendMessage(result.toJSON()) return return method