Skip to content

Onboarding

Diogo Lundberg edited this page Mar 27, 2018 · 37 revisions

API

Routes

[GET] /enrollments

Regras:

  • Validar o link (token da matrícula)
    • Válido: retorna Json completo do formulário
    • Inválido: retorna 403

[POST] /enrollments

  • Esta rota não irá receber o formulário de matrícula inteiro.
  • O post no frontend enviará apenas o id/token.
  • Os dados da matrícula serão validados inteiramente no backend, fazendo a consulta para construir o objeto e validando seu estado.

Regras:

  • Validar o link (token da matrícula) e todos os campos da matrícula no banco de dados.
    • Válido: Atualiza o campo sendDate com a data atual
    • Inválido: retorna Json completo do formulário com errors

[PATCH] /personaldatas

Regras:

  • Valida todos os campos do formulário.
  • Salva todos os campos
  • Retorna Json completo do formulário com errors desconsiderando campos obrigatórios

[POST] /personaldatas

Regras:

  • Valida todos os campos do formulário.
  • Salva todos os campos
  • Retorna Json completo do formulário com errors (incluindo campos obrigatórios)

[PATCH] /financialdatas

Regras:

  • Valida todos os campos do formulário.
  • Salva todos os campos
  • Retorna Json completo do formulário com errors desconsiderando campos obrigatórios

[POST] /financialdatas

Regras:

  • Valida todos os campos do formulário.
  • Salva todos os campos
  • Retorna Json completo do formulário com errors (incluindo campos obrigatórios)

JSON FORMAT

{
  "data": { ... },
  "errors": { 
    "field": [ "text", "text" ],
    "parent": {
      "child": [ "text", "text" ],
    },
  },
  "options": { ... }
}

Data

State

  • valid --> completo e validado 100%
  • invalid --> inválido, mostrando erro
  • empty --> sem mensagem de erro

Matrícula

"enrollment": {
  "deadline": Date,
  "sendDate": Date,
  "academicApproval": Date,
  "financeApproval": Date,
  "pendencies": {
    "sectionId": id,
    "description": "text",
  },
  "personalData": { ... },
  "financialData": { ... },
}

Dados Pessoais

"personalData": {
  "state": "valid, invalid, empty",
  "realName": "text",
  "assumedName": "text",
  "birthDate": Date,
  "cpf": "text",
  "nationality": "text",
  "highSchoolGraduationYear": "text",
  "email": "text",
  "zipcode": "text",
  "streetAddress": "text",
  "complementAddress": "text",
  "neighborhood": "text",
  "phoneNumber": "text",
  "landline": "text",
  "mothersName": "text",
  "handicap": "text",
  "genderId": id,
  "maritalStatusId": id,
  "birthCityId": id,
  "birthStateId": id,
  "birthCountryId": id,
  "highSchoolGraduationCountryId": id,
  "cityId": id,
  "stateId": id,
  "addressKindId": id,
  "raceId": id,
  "highSchoolKindId": id,
  "disabilities": [ ids ],
  "specialNeeds": [ ids ],
  "documents": [{
    "id": "onboarding/enrollment/<external_id>/personaldata/<id>",
    "documentTypeId": id,
  }],
}

Dados Financeiros

"financialData": {
  "state": "valid, invalid, empty",
  "representative": {
    "discriminator": "text", (Company/Person)
    "cnpj": "text", (Company)
    "contact": "text", (Company)
    "cpf": "text", (Person)
    "relationship": "text", (Person)
    "name": "text",
    "streetAddress": "text",
    "complementAddress": "text",
    "neighborhood": "text",
    "phoneNumber": "text",
    "landline": "text",
    "email": "text",
    "cityId": id,
    "stateId": id,
  },
  "guarantors": [{
    "name": "text",
    "streetAddress": "text",
    "complementAddress": "text",
    "neighborhood": "text",
    "phoneNumber": "text",
    "landline": "text",
    "email": "text",
    "cityId": id,
    "stateId": id,
    "documents": [{
      "id": "onboarding/enrollment/<external_id>/financialData/guarantor/<id>",
      "documentTypeId": id,
    }],
  }]
}  

MetaData

"options": {  
  "genders": [],
  "maritalStatuses": [],
  "states": [],
  "cities": [{
    "stateId": id,
  }],
  "countries": [],
  "addressKinds": [],
  "races": [],
  "highSchoolKinds": [],
  "disabilities": [],
  "specialNeeds": [{
    "disabilityId": id,
  }],
  "personalDocuments": [],
  "guarantorDocuments": [],
}