Erros

Retorno de Erros

Quando a API é chamada com um payload no qual não consta campos definidos como obrigatórios, será enviado um código 400 na resposta (bad request) e será enviada uma mensagem de erro que identifica o campo que não foi preenchido como o esperado e onde ele pode ser identificado.

No exemplo abaixo, enviaremos uma escala sem o campo street preenchido em seu endereço:

{
    "schedules": [
        {
            "name": "Escala teste",
            "address": {
                "number": "462",
                "district": "Vila Mariana",
                "city": "Sao Paulo",
                "state": "SP",
                "country": "Brasil"
            },	
            "checkin": true,
            "periods_update_policy": "create_or_update",
            "add_organizers_policy": true
        }
    ]
}

Erro retornado:

{
    "errors": [
        {
            "type": "required",
            "args": {
                "missing": "street"
            },
            "position": [
                "schedules",
                0,
                "address"
            ]
        }
    ]
}

A interpretação dessa mensagem é a seguinte: o campo street que se encontra na posição schedules -> 0 -> address. Ou seja, no campo schedules do payload, na posição 0 do array, o campo address dessa escala não possui o campo street preenchido, o que não pode acontecer, como informado no item 2 deste documento (seção de parâmetro).

Nesse outro exemplo, mandamos o campo checkin em um formato diferente do esperado:

{
    "schedules": [
        {
            "name": "Escala teste",
            "address": {
            	"street": "Rua madre cabrini",
                "number": "462",
                "district": "Vila Mariana",
                "city": "Sao Paulo",
                "state": "SP",
                "country": "Brasil"
            },	
            "checkin": "errado",
            "periods_update_policy": "create_or_update",
            "add_organizers_policy": true
        }
    ]
}

Mensagem retornada:

{
    "errors": [
        {
            "type": "type",
            "args": {
                "expected": "boolean",
                "used": "string"
            },
            "position": [
                "schedules",
                0,
                "checkin"
            ]
        }
    ]
}

Nesse exemplo podemos ver que o tipo do erro é type ao invés de required do exemplo anterior.

Exemplo de entrada:

{
    "schedules": [
        {
            "name": "Escala Teste 4",
            "address": {
                "street": "Rua Madre Cabrini",
                "number": "462",
                "district": "Vila Mariana",
                "city": "Sao Paulo",
                "state": "SP",
                "country": "Brasil" 
            },
            "checkin": true,
            "checkin_config": {
                "checkin_radius_in_km": 0.5,
                "checkin_window_in_min": 15,
                "checkout_delay_in_min": 15,
                "checkout_limit_in_min": 15,
								"allow_checkin_outside_checkin_area": true
            },
            "conflicts_between_departments_enabled": true,
            "conflicts_in_department_enabled": true,
            "allow_edit_grid": true,
            "allow_edit_schedule_info": true,
            "tags": [
                "COMP:ALTA", "ESC:MARINA", "EXIG:FEM", "GER:BRADESCO", "VALOR:R$50.000"
            ],
            "periods_update_policy": "flush_and_create",
            "add_organizers_policy": true,
            "periods": [
                {
                    "name": "Periodo7",
                    "external_id": "P7",
                    "start": "07:00:00",
                    "end": "19:00:00",
                    "slots": 1,
                    "week_days_exception": [
                        "monday", "tuesday", "wednesday", "thursday", "friday", "sunday"
                    ],
                    "tags": [
                        "VALOR:R$5.000"
                    ],
                    "date_start": "2019-07-01",
                    "date_end": "2019-08-11"
                },
                {
                    "name": "Periodo8",
                    "external_id": "P8",
                    "start": "07:00:00",
                    "end": "19:00:00",
                    "slots": 1,
                    "week_days_exception": [
                        
                    ],
                    "tags": [
                        "VALOR:R$3.000"
                    ],
                    "date_start": "2019-07-01",
                    "date_end": "2019-08-11"
                }
            ],
            "professionals": [
                {
                    "name": "User5",
                    "nickname": "User5",
                    "email": "user5@test.com",
                    "roles": [
                        "professional"
                    ],
                    "internal_id": "13924",
                    "cellphone": "11977777777",
                    "tags": [
                        "COOP:COOPERARMED", "FUNC:ENFER", "REG:ZL", "VALOR:R$8.333"
                    ],
                    "gender": "male",
                    "send_invite_when_submit": true,
                    "shifts":[
                        {
                            "date": "2019-07-02",
                            "period_name": "Periodo7",
                            "tags": [
                                "FT"
                            ]
                        },
                        {
                            "date": "2019-07-03",
                            "period_name": "Periodo7",
                            "tags": [
                                
                            ]
                        }
                    ]
                },
                {
                    "name": "User6",
                    "nickname": "User6",
                    "email": "organizador3@test.com",
                    "roles": [
                        "professional", "manager"
                    ],
                    "internal_id": "19511",
                    "cellphone": "11988888888",
                    "tags": [
                        "COOP:BLUECOOP", "FUNC:FISIO", "REG:ZS", "VALOR:R$11.333"
                    ],
                    "gender": "female",
                    "send_invite_when_submit": true,
                    "shifts": [
                        {
                            "date": "2019-07-02",
                            "period_name": "Periodo8",
                            "tags": [
                                "ADAPT", "VALOR:R$14.000"
                            ]
                        }
                    ]
                }
            ]
        }
    ]
}

Last updated