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