/backend-test-credere

API utilizada para simular a movimentação de uma sonda em área delimitada.

Primary LanguageElixir

Teste back-end - Credere

Projeto para responder o desáfio técnico no link abaixo:

Utilizando Elixir/Phoenix para construir a API.


Instruções


Endpoints

Enviar sonda

Envia uma sonda para a posição inicial (0,0) em um quadrante delimitado. Retorna um objeto JSON com uma mensagem de sucesso na criação.

  • URL

    /api/probe_simulator/send_probe

  • Method:

    GET

  • Success Response:

    • Code: 201
      Content: {"message":"Probe created successfully"}
  • Error Response:

    • Code: 404 NOT FOUND
  • Sample Call:

    local: curl GET http://localhost:4000/api/probe_simulator/send_probe -v


Mostrar sonda

Retorna um objeto JSON com as informações da sonda enviada.

  • URL

    /api/probe_simulator/show_probe

  • Method:

    GET

  • Success Response:

    • Code: 200
      Content: {"face": current_face,"x": current_x, "y":current_y}
  • Error Response:

    • Code: 400 BAD REQUEST
      Content: {"message":"This probe was not created."}
  • Sample Call:

    local: curl GET http://localhost:4000/api/probe_simulator/show_probe -v


Movimentar sonda

Retorna um objeto JSON com as informações atualizadas da sonda e uma descrição da sua movimentação.

  • URL

    /api/probe_simulator/move_probe

  • Method:

    POST

  • Data Params

    Exemplo válido : { "movimentos": ["GE", "M", "M", "M", "GD", "M", "M","M"] }

  • Success Response:

    • Code: 200
      Content: { "description":"a sonda girou para a esquerda, moveu 3 casa(s) no eixo y, girou para a direita, moveu 3 casa(s) no eixo x,","probe":{"x":3,"y":3} }
  • Error Response:

    • Code: 400 BAD REQUEST
      Content: { "erro":"Um movemento inválido foi detectado, infelizmente a sonda ainda não possui a habilidade de se mover fora dos limites configurados (Quadrante 5x5)." }
  • Sample Call:

    local: curl -X POST -H 'Content-Type: application/json' -d '{"movimentos": ["GE", "M", "M", "M", "GD", "M", "M","M"]}' http://localhost:4000/api/probe_simulator/move_probe -v