def locations():
    if 'key' not in request.args:
        return utils.error('Missing "key" argument.')

    DEVELOPMENT = 'ODE4NTYzODY1ODY1MDAyNTQ4Mjc2NDIyNTk4MjUwMjI6c3FqNnE3c2pqdDUwZnZ1NXRpaW1kaXJjaHduZG1jNmhjMXAxZ3oyZ3BmMnZsZmg3b2hmdDU3emowcThqNzMyMA=='
    STAGING = 'OTQ0MjIwMDEzNzUzMzk2OTY2Mzc2MTQyMzM5NjgxNDI6OXY3cHFxMXh0eTVtZnNvNXp4NXJzOXFhcTE2MWh5ZG4wN3l5OG1wcThyNXRycmo4aGJsYzEwNTB6NnFodDlvdQ=='
    PRODUCTION = 'ODI1OTAzOTI2NzcyNzcxNzcxNTI0MTA5ODk1ODA2NDc6cDFwd3hoanFiM2NiazdyMWlwdXFjeG85MjRreDN1dDQzNDBmd3hvd3pxM3F4bjlidmMzdml0bzlsa2N2NGl0bA=='

    key = request.args.get('key', PRODUCTION)

    base_url = 'https://config-api-dot-{}-euw-gmal-mcdonalds.appspot.com'
    if key == DEVELOPMENT:
        url = base_url.format('dev') + request.path
    elif key == STAGING:
        url = base_url.format('stg') + request.path
    elif key == PRODUCTION:
        url = base_url.format('prd') + request.path

    params = {
        'key': key
    }

    headers = {
        'User-Agent': 'okhttp/3.12.0'
    }

    r = requests.request(request.method, url, params=params, headers=headers)

    if r.status_code != 200:
        return utils.request_error(r)

    x = json.loads(r.content.decode())

    return utils.json_response(x)
示例#2
0
def getLevels():
    """
    Consultar niveles. \n
    """
    """
    @api {get} /v1/rewards/levels Consultar Niveles
    @apiName Consultar Niveles
    @apiGroup Niveles

    @apiUse AuthHeader

    @apiSuccessExample {json} Respuesta
        HTTP/1.1 200 OK
        {
            “pointValue” : “{pointValue}”,
	        “{levelId}” : {
                “levelName” : “{levelName}”,
	            “minPointValue” : “{minPointValue}”,
	            “maxPointValue” : “{maxPointValue}”
            }
        }

    @apiUse Errors

    """
    print(db.levels.count())
    results = db.levels.find({})
    levels = {
        'pointValue': db.scores.find_one({"name": "cotizacion"})["pointValue"],
    }
    for level in results:
        levelName = level["levelName"]
        minPointValue = level['minPointValue']
        maxPointValue = level['maxPointValue']
        levelData = {
            'levelName': levelName,
            'minPointValue': minPointValue,
            'maxPointValue': maxPointValue
        }

        levels[str(level['_id'])] = levelData

    if (not results):
        raise error("el find no funciona")
    return levels
示例#3
0
def add_record(request, model_name):
    """
    Добавляет новую запись модели.
    """
    # определим класс модели
    model = get_model(app_label='app', model_name=model_name)

    # добавим запись
    try:
        dct = {}
        for k, v in request.POST.iteritems():
            dct[k] = v

        model.objects.create(**dct)
    except Exception as e:
        return error('Ошибка формата' if e.message == '' else e.message)

    return ok({'model_name': model_name})
示例#4
0
def add_record(request, model_name):
    """
    Добавляет новую запись модели.
    """
    # определим класс модели
    model = get_model(app_label='app', model_name=model_name)

    # добавим запись
    try:
        dct = {}
        for k, v in request.POST.iteritems():
            dct[k] = v

        model.objects.create(**dct)
    except Exception as e:
        return error('Ошибка формата' if e.message == '' else e.message)

    return ok({'model_name': model_name})
示例#5
0
def change_field(request, model_name):
    """
    Обновляет запись модели.
    Взод:
        POST['field_name_id'] = "имя поля модели,ИД записи"
        POST['new_value'] = "новое значение для записи"
    """
    # определим класс модели
    model = get_model(app_label='app', model_name=model_name)

    # находим нужную запись и обновляем ее значение
    (field_name, record_id) = request.POST['field_name_id'].split(',')
    item = model.objects.get(id=record_id)
    item.__dict__[field_name] = request.POST['new_value']

    try:
        item.save()
    except Exception as e:
        return error('Ошибка формата' if e.message == '' else e.message)

    return ok()
示例#6
0
def change_field(request, model_name):
    """
    Обновляет запись модели.
    Взод:
        POST['field_name_id'] = "имя поля модели,ИД записи"
        POST['new_value'] = "новое значение для записи"
    """
    # определим класс модели
    model = get_model(app_label='app', model_name=model_name)

    # находим нужную запись и обновляем ее значение
    (field_name, record_id) = request.POST['field_name_id'].split(',')
    item = model.objects.get(id=record_id)
    item.__dict__[field_name] = request.POST['new_value']

    try:
        item.save()
    except Exception as e:
        return error('Ошибка формата' if e.message == '' else e.message)

    return ok()
def locationfinder():
    if 'key' not in request.args:
        return utils.error('Missing "key" argument.')

    DEVELOPMENT = 'NjE3MjgxMjMwNDY3MDY5NTcwMTMwNTQwMjExODY1NDQ6YTNzdWsxcGsxNW1peHdybnBtZ2pwdXNmODMyNzNhOGgwbXR4ejk3NmU2b29iam1xNzV4Nmppb21panE2eWljcg=='
    STAGING = 'NzUyMzE2NzQyMjI0NjUyMTY0NDQ2NDI4NjI5ODA1NTE6cGE5ZTdlOHYyeGN0bWo2Nml1NGhldjMzbGNhajA1czJlMnF5c3RkaXAwaWRnNTRrdnc5eDllcnBmeWR2c3E2cw=='
    PRODUCTION = 'MDAwNzc3Mzg4MTg5MDI0OTM5NzI1MjE4OTA5MTgyNDY6bWE4bDNjeTh6cmkydHNnMWZicjMwMGpiYWY5NXZ1aTFpc2hmNW0xdTBsNzRlcXZraHVncmEwaTJ1aGQ4amlqZA=='

    key = request.args.get('key', PRODUCTION)
    base_url = 'https://locationfinder-api-dot-{}-euw-gmal-mcdonalds.appspot.com'
    if key == DEVELOPMENT:
        url = base_url.format('dev') + request.path
    elif key == STAGING:
        url = base_url.format('stg') + request.path
    elif key == PRODUCTION:
        url = base_url.format('prd') + request.path

    params = {
        'key': key
    }

    headers = {
        'User-Agent': 'okhttp/3.12.0'
    }

    location = {
        'country': {
            'name': 'Italy',
            'code': 'IT'
        },
        'location': {
            'latitude': 0.0,
            'longitude': 0.0
        }
    }

    return utils.json_response(location)
示例#8
0
def handle_connection(conn, addr):
    data = b""
    with conn:
        while data != RESP.sstring("quit") or data != RESP.bstring("quit"):
            data = conn.recv(1024)
            # special form of PING command
            if data.upper() == RESP.sstring("PING"):
                conn.sendall(RESP.bstring("PONG"))
            data_tokens = data.rstrip(b"\r\n").split(b"\r\n")
            if len(data_tokens) < 3:
                utils.error(conn, "Too few arguments passed. Please check.")
                continue
            if utils.bad_cmd_format(data_tokens):
                utils.error(
                    conn,
                    "Array formatting is not RESP-compliant. Please check.")
                continue
            cmd, *args = data_tokens[2:]
            try:
                res = handle_request(cmd, args)
                conn.sendall(res)
            except (ValueError, NotImplementedError) as e:
                utils.error(conn, str(e))
                continue