async def get_list(request): """Get the release list.""" ua = request.headers.get('User-Agent', None) _REQUESTS.append((time.time(), ua)) with _LOCK: return response_json(_LIST)
async def registry(request): registration = RegistryRetriever(session).register_user( request.json['username'], request.json['password'], request.json['email']) return response_json({"result": registration}, headers=HEADERS, status=registration['status'])
async def decorated_function(request, *args, **kwargs): payload = check_jwt_status(request) if payload: response = await f(request, payload, *args, **kwargs) return response else: return response_json({'status': 'not_authorized'}, 403)
async def test(request): access_token = request.args.get('access_token') request_data = request.json print(f'request: {request.body.decode()}') url = f'https://oapi.dingtalk.com/robot/send?access_token={access_token}' data = get_dingtalk_data(request_data) response = await post(url, data) print(f'{url}: {response}') return response_json(request.json)
async def getinfo(req, tag): global Q_normal if Develop: rtn = mreq.getinfo(req.args, tag, req.path, req.query_string) else: job = Q_normal.enqueue_call( func=mreq.getinfo, args=[req.args, tag, req.path, req.query_string], timeout=20) while True: await sleep(.01) if job.result is not None: rtn = job.result break return response_json(rtn)
async def analytics(request): """Return some analytics.""" requests = {} total = 0 for req in _REQUESTS: ua = req[1] if ua not in requests: requests[ua] = 1 else: requests[ua] += 1 total += 1 requests['total'] = total return response_json(requests)
async def get_user(request, user_id): user = UserRetriever(session).user_data(user_id) return response_json({'response': user}, headers=HEADERS, status=user['status'])
async def get_users(request): users = UserRetriever(session).list_users() return response_json({'user_data': users}, headers=HEADERS)
async def get_list(request): """Get the add-on list which matches a set of filters.""" args = request.args ua = request.headers.get('User-Agent', None) _REQUESTS.append((time.time(), ua)) # Defaults based on 0.6.X arch = args['arch'][0] if 'arch' in args else None node = args['node'][0] if 'node' in args else '57' python = \ args['python'][0].split(',') if 'python' in args else ['2.7', '3.5'] test = args['test'][0] == '1' if 'test' in args else False query = args['query'][0] if 'query' in args else None type_ = args['type'][0] if 'type' in args else None if 'version' in args: version = args['version'][0] elif ua is not None and (ua.startswith('mozilla-iot-gateway/') or ua.startswith('webthings-gateway/')): version = ua.split('/')[1].split(' ')[0] else: version = '0.6.1' version = semver.parse_version_info(version) results = [] with _LOCK: for addon in _LIST: packages = check_addon( addon, arch, node, python, test, query, type_, version, ) if packages: if version.major == 0 and version.minor <= 6: results.append({ 'name': addon['id'], 'display_name': addon['name'], 'description': addon['description'], 'author': addon['author'], 'homepage': addon['homepage_url'], 'packages': { package['architecture']: { 'version': package['version'], 'url': package['url'], 'checksum': package['checksum'], } for package in packages }, 'api': 2, }) elif version.major == 0 and version.minor <= 9: results.extend([{ 'name': addon['id'], 'display_name': addon['name'], 'description': addon['description'], 'author': addon['author'], 'homepage': addon['homepage_url'], 'license': addon['license_url'], 'version': package['version'], 'url': package['url'], 'checksum': package['checksum'], 'type': addon['primary_type'], } for package in packages]) else: results.extend([{ 'id': addon['id'], 'name': addon['name'], 'description': addon['description'], 'author': addon['author'], 'homepage_url': addon['homepage_url'], 'license_url': addon['license_url'], 'version': package['version'], 'url': package['url'], 'checksum': package['checksum'], 'primary_type': addon['primary_type'], } for package in packages]) return response_json(results)
async def offer(request): session = Session() return response_json({'auth': 'offer'}, headers=HEADERS, status=200)
async def create(request): session = Session() return response_json({"result": 'create'}, headers=HEADERS, status=200)