Skip to content

Altera pontos específicos de um assunto

Request

Aplica operações JSON Patch (RFC 6902) no assunto, sem exigir o reenvio do form ou do config completos. O servidor lê o estado atual, aplica as operações e persiste — se qualquer operação falhar, nada é escrito.

Use operações test como precondição: elas comparam o valor atual com o que você leu no GET e devolvem 409 se o assunto já mudou.

⚠️ Isso estreita a janela de sobrescrita, não a elimina. A aplicação é read-modify-write no servidor, então dois PATCH concorrentes podem passar ambos os test e ambos gravar. Atomicidade real exigiria escrita por caminho no types service.

Escopo do path:/config..., /form... e /step... são editáveis — as demais raízes o types service descarta em silêncio, então a rota recusa com 400 antes de gravar. Para substituir uma raiz inteira, use PATCH /hub-api/type/edit/{typeId}.

Limites: no máximo 50 operações por request (lote maior é replace de raiz disfarçado) e profundidade de ponteiro de até 30 níveis. O corpo aceita até 10 MB, alinhado com o type/edit.

Só as raízes efetivamente mutadas vão no commit — test é precondição, não escrita.

Assunto no formato legado (raiz gravada como string de JSON, ex. config): a rota responde 400 nomeando o caso — não há caminho para endereçar dentro de um escalar. Normalize a raiz inteira antes, com PATCH /hub-api/type/edit/{typeId}.

Security
InternalAuth
Path
typeIdstring^[a-fA-F0-9]{24}$required

ObjectId do assunto (hex de 24 chars)

Example:69aae29b8f070e4432a63036
Bodyapplication/jsonrequired
opsArray of objects, [ 1 .. 50 ] itemsrequired

Operações JSON Patch, aplicadas em ordem e de forma atômica (tudo ou nada)

fromstring, non-emptyrequired

Autor + ticket + resumo, gravado no historico_types. Formato: "<agente>:movidesk-<ticketId>: <resumo curto>". Obrigatório — sem ele o histórico ficaria anônimo

Example:"ticket-solver:movidesk-259147: renomeia label da área construída"
PATCH
/hub-api/type/patch/{typeId}
curl -i -X PATCH \
  https://api.producao.aprova.com.br/hub-api/type/patch/69aae29b8f070e4432a63036 \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY_HERE' \
  -d '{
    "from": "ticket-solver:movidesk-259147: renomeia label da área construída",
    "ops": [
      {
        "op": "test",
        "path": "/form/0/fieldGroup/5/templateOptions/label",
        "value": "Área construída"
      },
      {
        "op": "replace",
        "path": "/form/0/fieldGroup/5/templateOptions/label",
        "value": "Área construída (m²)"
      }
    ]
  }'

Responses

O assunto já com o patch aplicado

Bodyapplication/json
_idstring
Example:"69aae29b8f070e4432a63036"
configobject
formArray of objects
stepobject
property name*anyadditional property
Response
{ "_id": "69aae29b8f070e4432a63036", "config": {}, "form": [ {} ], "step": {} }