Docs orders
This commit is contained in:
51
docs/sim-alai/Login.yml
Normal file
51
docs/sim-alai/Login.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
info:
|
||||
name: Login
|
||||
type: http
|
||||
seq: 2
|
||||
|
||||
http:
|
||||
method: POST
|
||||
url: "{{baseurl}}/v1/auth/login"
|
||||
body:
|
||||
type: json
|
||||
data: |-
|
||||
{
|
||||
"username": "{{username}}",
|
||||
"password": "{{password}}",
|
||||
"brandID": "{{brandId}}"
|
||||
}
|
||||
auth: inherit
|
||||
|
||||
runtime:
|
||||
scripts:
|
||||
- type: after-response
|
||||
code: |-
|
||||
const data = res.getBody();
|
||||
|
||||
if (data.staus != 200) {
|
||||
console.error("Error de login: ", data)
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (data && data.accessToken) {
|
||||
|
||||
bru.setEnvVar("alai_token", data.accessToken);
|
||||
|
||||
if (data.tokenType) {
|
||||
bru.setEnvVar("alai_token_type", data.tokenType);
|
||||
}
|
||||
|
||||
console.log("Token guardado correctamente");
|
||||
} else {
|
||||
console.error("No se pudo encontrar el accessToken en la respuesta");
|
||||
}
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
|
||||
docs: |-
|
||||
Necesita un certificado p12 (PFX) y la contraseña asociada para efectuar la operacion.
|
||||
Collection Settings => ClientCertificates => Add Certificate
|
||||
15
docs/sim-alai/New Order.yml
Normal file
15
docs/sim-alai/New Order.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
info:
|
||||
name: New Order
|
||||
type: http
|
||||
seq: 3
|
||||
|
||||
http:
|
||||
method: POST
|
||||
url: "{{baseurl}}/v1/order"
|
||||
auth: inherit
|
||||
|
||||
settings:
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
followRedirects: true
|
||||
maxRedirects: 5
|
||||
BIN
docs/sim-alai/certificates/alai_cert.p12
Normal file
BIN
docs/sim-alai/certificates/alai_cert.p12
Normal file
Binary file not shown.
@@ -2,6 +2,6 @@ name: local
|
||||
color: "#2E8A54"
|
||||
variables:
|
||||
- name: baseurl
|
||||
value: http://localhost:3001
|
||||
value: http://localhost:3002
|
||||
- secret: true
|
||||
name: token
|
||||
|
||||
@@ -2,6 +2,12 @@ name: prod
|
||||
color: "#CE4F3B"
|
||||
variables:
|
||||
- name: baseurl
|
||||
value: https://nosconnectcenter-api.iot-x.com
|
||||
value: https://wsaccess.alaisecure.com/bssrest
|
||||
- name: username
|
||||
value: palomaibanez
|
||||
- name: password
|
||||
value: palomaibanez123
|
||||
- secret: true
|
||||
name: token
|
||||
name: certPasswd
|
||||
- name: brandId
|
||||
value: savefamily
|
||||
|
||||
@@ -2,6 +2,22 @@ opencollection: 1.0.0
|
||||
|
||||
info:
|
||||
name: sim-alai
|
||||
config:
|
||||
proxy:
|
||||
inherit: true
|
||||
config:
|
||||
protocol: http
|
||||
hostname: ""
|
||||
port: ""
|
||||
auth:
|
||||
username: ""
|
||||
password: ""
|
||||
bypassProxy: ""
|
||||
clientCertificates:
|
||||
- domain: wsaccess.alaisecure.com
|
||||
type: pkcs12
|
||||
pkcs12FilePath: certificates\alai_cert.p12
|
||||
passphrase: iHaaek+zyzWz6cH6rg==
|
||||
bundled: false
|
||||
extensions:
|
||||
bruno:
|
||||
|
||||
@@ -6,16 +6,80 @@ meta {
|
||||
|
||||
post {
|
||||
url: {{baseurl}}/sim/activate
|
||||
body: formUrlEncoded
|
||||
body: json
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
body:json {
|
||||
{
|
||||
"iccid": "1234"
|
||||
}
|
||||
}
|
||||
|
||||
body:form-urlencoded {
|
||||
iccid: 8933201125065156057
|
||||
offer: SAVEFAMILY1
|
||||
iccid: 123
|
||||
offer: mensual
|
||||
}
|
||||
|
||||
settings {
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
}
|
||||
|
||||
docs {
|
||||
Campos de entrada:
|
||||
```ts
|
||||
// Header requerido
|
||||
// > content-type:application/x-www-form-urlencoded
|
||||
// > content-type:application/json
|
||||
// Cualquiera de los 2 es valido
|
||||
|
||||
// Esquema body
|
||||
{
|
||||
iccid: string,
|
||||
offer: "mensual" | "anual" | "SAVEFAMILY1" | "SAVEFAMILY2"
|
||||
webhook?: string,
|
||||
}
|
||||
```
|
||||
|
||||
En el campo `offer` "mensual" equivale a "SAVEFAMILY2" y "anual" a "SAVEFAMILY1" porque se mantien los códigos de Oferta de Objenious por compatibilidad pero se espera usar "mensual" y "anual" y hacer la conversión en el servicio de cada proveedor.
|
||||
|
||||
Para las llamadas al webhook se va a usar siempre el metodo `POST`, ahora mismo no se firman los mensajes. Se introduce la URL completa tal que `https://dominion.com/v1/endpoint`.
|
||||
|
||||
Respuestas:
|
||||
- **200**: OK
|
||||
``` ts
|
||||
// Esquema
|
||||
{
|
||||
iccid: string,
|
||||
operation: string,
|
||||
message_id: string, //uuidv7
|
||||
}
|
||||
```
|
||||
``` json
|
||||
// Ejemplo
|
||||
{
|
||||
"iccid": "89332011250651xxxxx",
|
||||
"operation": "activation",
|
||||
"message_id": "019dbeaf-8abb-7783-8b51-94fbd9f0b0df"
|
||||
}
|
||||
```
|
||||
|
||||
*iccid*: Confirmación del iccid enviado.
|
||||
*operation*: Confirmación de la operacion que se ha aplicado.
|
||||
*message_id*: Id de la operación, para consultar en orders.
|
||||
|
||||
> A futuro se va a incluir un campo `"ref":[]` para añadir los enlaces a las consultas de la operación. El body va a permitir tambien json.
|
||||
|
||||
- **402**: Algún campo es incorrecto
|
||||
Se indica que campo es incorrecto, si hubiese mas de uno solo aparecería el primero en comprobarse.
|
||||
```json
|
||||
"errors": {
|
||||
"msg": "La longitud del iccid es incorrecta debera ser de 19 caracteres",
|
||||
"field": "iccid"
|
||||
}
|
||||
```
|
||||
|
||||
- **500**: Error general
|
||||
Ha ocurrido un error imprevisto durante la
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Activation Email
|
||||
type: http
|
||||
seq: 6
|
||||
seq: 7
|
||||
}
|
||||
|
||||
post {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Cancel
|
||||
type: http
|
||||
seq: 1
|
||||
seq: 3
|
||||
}
|
||||
|
||||
post {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Docs
|
||||
type: http
|
||||
seq: 12
|
||||
seq: 10
|
||||
}
|
||||
|
||||
get {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Health
|
||||
type: http
|
||||
seq: 5
|
||||
seq: 6
|
||||
}
|
||||
|
||||
get {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Get pending orders
|
||||
type: http
|
||||
seq: 11
|
||||
seq: 10
|
||||
}
|
||||
|
||||
get {
|
||||
@@ -5,7 +5,7 @@ meta {
|
||||
}
|
||||
|
||||
get {
|
||||
url: {{baseurl}}/orders/
|
||||
url: {{baseurl}}/orders/019dbeaf-8abb-7783-8b51-94fbd9f0b0df
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
@@ -5,15 +5,11 @@ meta {
|
||||
}
|
||||
|
||||
get {
|
||||
url: {{baseurl}}/orders/message_id/019c93d3-014a-711d-b958-03dd629be78d
|
||||
url: {{baseurl}}/orders/message_id/019dbeaf-8abb-7783-8b51-94fbd9f0b0df
|
||||
body: none
|
||||
auth: inherit
|
||||
}
|
||||
|
||||
params:query {
|
||||
~message_id: 019c93d3-014a-711d-b958-03dd629be78d
|
||||
}
|
||||
|
||||
settings {
|
||||
encodeUrl: true
|
||||
timeout: 0
|
||||
44
docs/sim-api/Orders/folder.bru
Normal file
44
docs/sim-api/Orders/folder.bru
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Pause
|
||||
type: http
|
||||
seq: 1
|
||||
seq: 4
|
||||
}
|
||||
|
||||
post {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: Preactivate
|
||||
type: http
|
||||
seq: 1
|
||||
seq: 5
|
||||
}
|
||||
|
||||
post {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: ReActivate
|
||||
type: http
|
||||
seq: 13
|
||||
seq: 11
|
||||
}
|
||||
|
||||
post {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
docs {
|
||||
Los endpoint tienen unos campos comunes de entrada:
|
||||
Todos los endpoint tienen unos campos comunes de entrada:
|
||||
|
||||
```ts
|
||||
{
|
||||
iccid: string,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
meta {
|
||||
name: test proxy
|
||||
type: http
|
||||
seq: 14
|
||||
seq: 12
|
||||
}
|
||||
|
||||
get {
|
||||
|
||||
Reference in New Issue
Block a user