Planning

Como receber o estado atual do problema via webhook?

A Planning API trabalha de forma assíncrona. Isso significa que ao enviar um problema, um ID é retornado e através desse ID será possível consultar o estado atual do processamento e, quando concluído, a solução do problema.

Utilizando o parâmetro callback na requisição para a Planning, é possível informar um webhook para receber uma requisição a cada mudança de estado no processamento do problema.

Assim não será necessário consultar o status do problema para verificar se o mesmo foi processado. A API irá notificar o webhook quando a solução estiver disponível para consulta.

Os seguintes parâmetros são necessários:

  • url – URL com o endereço que irá receber o callback.
  • user – (Opcional) Texto com o nome do usuário caso o endpoint precisar de autenticação.
  • password – (Opcional) Texto com a senha caso o endpoint precisar de autenticação.

Abaixo um exemplo com a utilização do callback:

"callback": {
    "password": "nome_usuario",
    "url": "https://enqkbfcos3dhgchuikd.webhook.net",
    "user": "senha"
},

O método HTTP é  um POST. As informações de usuário e senha vão em headers user e password. Será enviado um JSON com o formato e campos abaixo:

[{
    id: String,
    jobId: String,
    type: Enum (STATUS_CHANGE, ERROR, STEP_CHANGE, PERCENT_CHANGE, WARNING),
    description: String,
    createdAt: Date
}] 

O callback enviará dados a cada mudança no estado de processamento. O callback da Planning API enviará cada estado junto com o ID do problema no body. Assim, uma vez atingido o estado "SOLVED", pode-se criar um gatilho para obter a solução. Abaixo a lista de todos os estados enviados:

1- Status ENQUEUED
    [0]
    createdAt: 1617034915185
    description: ENQUEUED
    jobId: 6061fea38031257fe109f0b7
    type: STATUS_CHANGE


    [1]
    createdAt: 1617034915255
    description: 1
    jobId: 6061fea38031257fe109f0b7
    type: PERCENT_CHANGE
 
2-Status CONVERT_TO_MATRIX
    [0]
    createdAt: 1617034915164
    description: CONVERT_TO_MATRIX
    jobId: 6061fea38031257fe109f0b7
    type: STATUS_CHANGE
 
3- Status PROCESSING
    [0]
    createdAt: 1617034915335
    description: PROCESSING
    jobId: 6061fea38031257fe109f0b7
    type: STATUS_CHANGE
 
4- Status MATRIX_CALCULATION
    [0]
    createdAt: 1617034915608
    description: MATRIX_CALCULATION
    jobId: 6061fea38031257fe109f0b7
    type: STATUS_CHANGE
 
5- Status progress 60%
    [0]
    createdAt: 1617034916863
    description: progress 60%
    jobId: 6061fea38031257fe109f0b7
    type: STEP_CHANGE


6- Status CALCULATE_PLANNING
    [0]
    createdAt: 1617034917633
    description: CALCULATE_PLANNING
    jobId: 6061fea38031257fe109f0b7
    type: STATUS_CHANGE


    [1]
    createdAt: 1617034917740
    description: 60
    jobId: 6061fea38031257fe109f0b7
    type: PERCENT_CHANGE
 
7- Status PRE_TREATMENTS
    [0]
    createdAt: 1617034918058
    description: PRE_TREATMENTS
    jobId: 6061fea38031257fe109f0b7
    type: STEP_CHANGE
 
8- Status INITIAL_CONSTRUCTION
    [0]
    createdAt: 1617034918207
    description: INITIAL_CONSTRUCTION
    jobId: 6061fea38031257fe109f0b7
    type: STEP_CHANGE
 
9- Status IMPROVEMENT
    [0]
    createdAt: 1617034918346
    description: IMPROVEMENT
    jobId: 6061fea38031257fe109f0b7
    type: STEP_CHANGE
 
10- Status POST_TREATMENTS
    [0]
    createdAt: 1617034918535
    description: POST_TREATMENTS
    jobId: 6061fea38031257fe109f0b7
    type: STEP_CHANGE
 
11- Status SOLVED
    [0]
    createdAt: 1617034918777
    description: SOLVED
    jobId: 6061fea38031257fe109f0b7
    type: STATUS_CHANGE


    [1]
    createdAt: 1617034918885
    description: 100
    jobId: 6061fea38031257fe109f0b7
    type: PERCENT_CHANGE


    [2]
    createdAt: 1617034918992
    description: TERMINATE
    jobId: 6061fea38031257fe109f0b7
    type: STEP_CHANGE