def customer_reserve()

in services/customer-sync/main.py [0:0]


def customer_reserve():
    json_data = request.get_json()
    customer_id, number = None, None
    invalid_fields = []
    for key in json_data.keys():
        if key == 'customer_id':
            customer_id = json_data[key]
        elif key == 'number':
            number = json_data[key]
        else:
            invalid_fields.append(key)
    if customer_id is None or number is None:
        return error500()

    query = ds_client.query(kind='Customer')
    query.add_filter('customer_id', '=', customer_id)
    resp = None
    for result in query.fetch(): # This should return a single entity.
        credit = result['credit']
        limit = result['limit']
        if credit + number * 100 > limit: # Reject
            accept = False
        else: # Accept
            accept = True
            result['credit'] = credit + number * 100
            ds_client.put(result)
        resp = {
            'customer_id': customer_id,
            'credit': result['credit'],
            'accepted': accept
        }
        break

    if resp is None:
        return error500()

    return resp, 200