def get_user_id(self, request): j = get_args(request) user_id = yield self.service.get_user_id(j['token'].decode('hex')) defer.returnValue({ 'success': True, 'user_d': user_id, })
def scan(self, request): j = get_args(request) name = j.get('name') options = { 'format': j.get('format', 'png') or 'png', 'resolution': str(j.get('resolution') or 300), 'mode': j.get('mode') or 'Color' } if not name: request.setHeader('Content-Type', 'text/plain;charset=utf-8') request.setResponseCode(400) return 'Name should be set' deferred = self.service.getImage(name, request, options) finished = request.notifyFinish() def _finished(_): print('Request cancelled') deferred.cancel() def _cb(name): print('Process Finished: %s' % name) if not request._disconnected: request.finish() def _eb(failure): if not isinstance(failure.value, CancelledError): request.setResponseCode(500, 'Scanning error') request.setHeader('Content-Type', 'text/json;charset=utf-8') request.write(as_json(failure.value)) if not request._disconnected: request.finish() deferred.addCallbacks(_cb, _eb) finished.addErrback(_finished) return NOT_DONE_YET
def release_token(self, request): """ Release previously acquired token :param request: :return: """ j = get_args(request) result = yield self.service.release_token(j['token'].decode('hex')) defer.returnValue({ 'success': result, 'token': j['token'], })
def is_valid_credentials(self, request): """ Check whether credentials are valid :param request: :return: """ j = get_args(request) user = yield self.service.is_valid_credentials(j['login'], j['password']) defer.returnValue({ 'success': True, 'user_id': user.user_id, })
def prolong_token(self, request): """ Make token live longer :param request: :return: """ j = get_args(request) success, deadline = yield self.service.prolong_token(j['token'].decode('hex')) defer.returnValue({ 'success': success, 'deadline': deadline, 'ttl': deadline - time.time(), 'token': j['token'], })
def acquire_token(self, request): """ Acquire auth token for login / password pair :param request: :return: """ j = get_args(request) login = j['login'] password = j['password'] ato = yield self.service.acquire_token(login, password) defer.returnValue({ 'success': True, 'token': ato.token.encode('hex'), 'deadline': ato.deadline, 'ttl': ato.deadline - time.time(), 'user_id': ato.user_id, })
def check_token(self, request): """ Check whether auth token is valid :param request: :return: """ j = get_args(request) prolong = j.get('prolong', False) hex_token = j.get('token', '') if len(hex_token) != 32: raise Exception(u'Плохой токен аутентификации') user_id, deadline = yield self.service.check_token(hex_token.decode('hex'), prolong) defer.returnValue({ 'success': True, 'user_id': user_id, 'deadline': deadline, 'ttl': deadline - time.time(), 'token': hex_token, })