Skip to content

Releases: giovnnvm/orange-talents-06-proposta

105.dados_dos_clientes

04 Aug 16:13
Compare
Choose a tag to compare

Objetivo

Proteger os dados sensíveis dos nossos clientes.

Necessidades

Armazenar o documento do cliente de maneira criptografada.

Restrições

  • Não deve ser possível identificar o documento do cliente na base de dados.

Resultado Esperado

  • O documento deve ser armazenado criptografado no banco de dados.

100.rodando_prometheus

04 Aug 06:56
Compare
Choose a tag to compare

Necessidades

Configurar os endpoints para a coleta de métricas no prometheus e fazer com que o prometheus colete sua métrica.

Resultado Esperado

Métricas armazenadas no Prometheus. Consultar via interface gráfica

095.falhar_nas_chamadas

04 Aug 06:14
Compare
Choose a tag to compare

Necessidades

Repassar headers requeridos pelo padrão OpenTracing para todas as interações entre serviços, via HTTP Headers.

Resultado Esperado

Informações sobre tracing presente em todas as requisições.

090.associacao_samsung_pay

04 Aug 03:18
Compare
Choose a tag to compare

Objetivo

Realizar a inclusão do nosso cartão na carteira digital Samsung Pay.

Necessidades

O portador do cartão deseja associar seu cartão a carteira digital do Samsung Pay, para isso será necessário consumir a API
do sistema bancário.

Temos uma API específica para cadastrar a carteira digital, vamos analisá-la?

http://localhost:8888/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/

Restrições

Devemos criar uma API com as seguintes restrições:

  • O identificador do cartão é obrigatório e deve ser informado na URL (path parameter).
  • O email é obrigatório, ou seja, não pode ser nulo, vazio ou inválido.

Resultado Esperado

  • A carteira deve estar armazenada no sistema, com um identificador gerado pelo sistema.
  • Retornar 201 com Header Location preenchido com a URL da carteira em caso de sucesso.
    • Quando o sistema bancário retornar sucesso (status code na faixa 200) a carteira deve ser armazenada no sistema.
    • Quando o sistema bancário retornar erro (status code na faixa 400 ou 500) a carteira não deve ser armazenada no sistema.
  • Retornar 400 quando violado alguma das restrições.
  • Retornar 404 quando o cartão não for encontrado.

085.associacao_paypal

04 Aug 03:00
Compare
Choose a tag to compare

Objetivo

Realizar a inclusão do nosso cartão na carteira digital Paypal.

Necessidades

O portador do cartão deseja associar seu cartão à carteira digital do Paypal, para isso será necessário consumir a API
do sistema bancário.

Temos uma API específica para cadastrar a carteira digital, vamos analisá-la?

http://localhost:8888/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/

Restrições

Devemos criar uma API com as seguintes restrições:

  • O identificador do cartão é obrigatório e deve ser informado na URL (path parameter).
  • O email é obrigatório, ou seja, não pode ser nulo, vazio ou inválido.
  • O mesmo cartão não pode ser associado mais de uma vez a mesma carteira digital, no caso aqui o Paypal.

Resultado Esperado

  • A carteira deve estar armazenada no sistema, com um identificador gerado pelo sistema.
  • Retornar 201 com Header Location preenchido com a URL da carteira em caso de sucesso.
    • Quando o sistema bancário retornar sucesso (status code na faixa 200) a carteira deve ser armazenada no sistema.
    • Quando o sistema bancário retornar erro (status code na faixa 400 ou 500) a carteira não deve ser armazenada no sistema.
  • Retornar 400 quando violado alguma das restrições.
  • Retornar 404 quando o cartão não for encontrado.
  • Retornar 422 no caso de tentativa de associação de um cartão que já era associado com a carteira

080.notificando_sistema_bancario_viagem

03 Aug 20:25
Compare
Choose a tag to compare

Objetivo

O sistema bancário precisa ser notificado que foi realizada uma notificação de aviso de viagem.

Necessidades

Realizar a confirmação da notificação do aviso de viagem para o sistema bancário. A chamada deve ser realizada para o
sistema de accounts (cards).

Temos uma API específica para notificar o sistema bancário sobre o aviso de viagem, vamos analisá-la?

http://localhost:8888/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/

Restrições

  • O identificador do cartão é obrigatório e deve ser informado na URL (path parameter).
  • O destino da viagem é obrigatório, ou seja, não pode ser nulo ou vazio.
  • A data de validade da viagem é obrigatória, ou seja, não pode ser nulo ou uma data antiga.

Resultado Esperado

  • Quando o sistema bancário retornar sucesso (status code na faixa 200) o aviso deve ser armazenado no sistema.
  • Quando o sistema bancário retornar erro (status code na faixa 400 ou 500) o aviso de viagem não deve ser armazenado no sistema.

075.aviso_viagem

03 Aug 19:09
Compare
Choose a tag to compare

Objetivo

Cadastrar um aviso de viagem para o cartão.

Necessidades

O portador do cartão pode realizar uma notificação para o banco, dizendo que pretende utilizar o cartão em um
determinado destino, isso ajuda o banco no controle das fraudes.

  • Informar o identificador do cartão.
  • Informar o destino da viagem.
  • Informar a data do término da viagem.
  • Armazenar o instante do aviso de viagem.
  • Armazenar o IP do cliente que fez a requisição.
  • Armazenar o User Agent do cliente que fez a requisição.

Restrições

  • O identificador do cartão é obrigatório e deve ser informado na URL (path parameter).
  • O destino da viagem é obrigatório, ou seja, não pode ser nulo ou vazio.
  • A data do término da viagem é obrigatória, ou seja, não pode ser nulo ou uma data antiga.

Resultado Esperado

  • O aviso de viagem deve estar armazenado no sistema, com um identificador gerado pelo sistema.
  • Retornar 200 em caso de sucesso.
  • Retornar 400 quando violado alguma das restrições.
  • Retornar 404 quando o cartão não for encontrado.

065.como_saber_tudo_funcionando_corretamente

03 Aug 18:15
Compare
Choose a tag to compare

Necessidades

Precisamos criar um endpoint HTTP REST para "mostrar" a métrica da instância para um serviço externo de armazenamento
de métrica. Vamos usar o formato do Prometheus que é o padrão da Cloud Native Computing Foundation.

Resultado Esperado

Endpoint com métricas expostas para uma futura coleta.

060.notificando_legado_cartao

03 Aug 17:58
Compare
Choose a tag to compare

Objetivo

Precisamos notificar o sistema legado do banco, que houve um bloqueio no cartão. Para que de fato o cartão esteja
bloqueado em todos os canais de venda.

Necessidades

Notificar o sistema bancário que o usuário solicitou o bloqueio do cartão a fim de garantir o bloqueio em todos os
canais de utilização do mesmo.

Temos uma API específica para notificar o sistema bancário sobre o bloqueio do cartão, vamos analisá-la?

http://localhost:8888/swagger-ui/index.html?configUrl=/v3/api-docs/swagger-config#/

Restrições

O identificador do cartão é obrigatório.

Resultado Esperado

  • Quando o retorno do sistema bancário retornar sucesso (status code na faixa 200) devemos alterar o estado do cartão para "BLOQUEADO".
  • Quando o retorno do sistema bancário retornar erro (status code na faixa 400 ou 500) não devemos alterar o estado do cartão.

055.bloqueio_cartao

03 Aug 15:18
Compare
Choose a tag to compare

Objetivo

Realizar o bloqueio do cartão.

Necessidades

O usuário do cartão pode realizar o bloqueio do cartão por alguma suspeita de fraude.

  • Informar o identificador do cartão a ser bloqueado.

  • Armazenar o instante do bloqueio.

  • Armazenar o IP do cliente que fez a requisição.

  • Armazenar o User Agent do cliente que fez a requisição.

Restrições

  • O identificador do cartão é obrigatório e deve ser informado na URL (path parameter).

  • Caso o cartão esteja já bloqueado devemos retornar um erro de negócio.

Resultado Esperado

  • Bloqueio deve estar armazenada no sistema, com um identificador gerado pelo sistema.

  • Retornar 200 quando o bloqueio em caso de sucesso.

  • Retornar 400 quando violado alguma das restrições.

  • Retornar 422 quando violado alguma regra de negócio.

  • Retornar 404 quando o cartão não for encontrado.