46 lines
1.8 KiB
Plaintext
46 lines
1.8 KiB
Plaintext
meta {
|
|
name: Orders
|
|
seq: 3
|
|
}
|
|
|
|
auth {
|
|
mode: inherit
|
|
}
|
|
|
|
docs {
|
|
# Orders
|
|
|
|
Los *order* representan ordenes que se hacen al servidor y representan en que estado se encuentran las peticiones. Los *order* se generan cuando se solicita una operacion y devuelven su identificador en el campo `message_id` de todas las respuestas a peticiones que requieran cambios. Los identificadores de `order` son UUIDv7, aunque tambien tienen asociado un id tradicional BIGINT en la BDD.
|
|
|
|
## Ciclo de vida
|
|
|
|
Cuando se crea un *order* comienza en estado `pending`, inicando que ha entrado en la cola y está pendiente de iniciarse; una vez se ha consumido por un servicio pasa a estado `running` indicando que la operacion asociada al *order* ha comenzado, el order continuara en este estado durante un tiempo indefinido (pueden pasar semanas para algunos casos), hasta que la tara finalize correctamente o con errores. En el caso que la tarea finalize con éxito el *order* pasará a estado `finished`, en caso de que haya habido un error el estado será `failed` y se almacenará el error en los campos `error_message` y opcionalemente en `error_stacktrace` según gravedad del error.
|
|
|
|
- Caso normal
|
|
`pending` -> `running` -> `finished`
|
|
|
|
- Error durante el consumo
|
|
`pending` -> `failed`
|
|
|
|
- Error durante la operacion
|
|
`pending` -> `running` -> `failed`
|
|
|
|
## Endpoints
|
|
Estan sujetos a cambios en cuanto a mostrar información
|
|
|
|
- [WIP]**GET** /orders?{query}
|
|
Devuelve todos los orders con un campo que tenga el valor especificado en la query
|
|
|
|
- **GET** /orders/{id}
|
|
Devuelve el order objetivo según su UUID de mensaje (No según el uuid de mensaje)
|
|
|
|
- **GET** /orders/base_id/{id}
|
|
Devuelve el id según su id de la bdd, no es el metodo normal de usar la api
|
|
|
|
- **GET** /orders/pending
|
|
Devuelve todas las order que no hayan finalizado
|
|
|
|
|
|
|
|
}
|