meta { name: Orders } 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 }