def order_create()

in services/order-async/main.py [0:0]


def order_create():
    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()

    order = {
        'customer_id': customer_id,
        'order_id': str(uuid.uuid4()),
        'number': number,
        'status': 'pending'
    }
    event = {
        'event_id': str(uuid.uuid4()),
        'topic': 'order-service-event',
        'type': 'order_create',
        'timestamp': datetime.datetime.utcnow(),
        'published': False,
        'body': json.dumps(order)
    }

    with ds_client.transaction():
        incomplete_key = ds_client.key('Order')
        order_entity = datastore.Entity(key=incomplete_key)
        order_entity.update(order)
        ds_client.put(order_entity)

        incomplete_key = ds_client.key('Event')
        event_entity = datastore.Entity(key=incomplete_key)
        event_entity.update(event)
        ds_client.put(event_entity)

    return order, 200