{"id":26009942,"url":"https://github.com/victormoreira92/desafio-emprestimo","last_synced_at":"2026-05-08T08:36:11.966Z","repository":{"id":279712801,"uuid":"848555171","full_name":"victormoreira92/desafio-emprestimo","owner":"victormoreira92","description":"Desafio de emprestimo, API Rest que cadastra e informa o emprestimo a ser concedido","archived":false,"fork":false,"pushed_at":"2025-04-02T03:25:24.000Z","size":44,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T04:19:16.759Z","etag":null,"topics":["api-rest","rails-api","ruby","ruby-on-rails"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/victormoreira92.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-28T01:21:39.000Z","updated_at":"2025-04-02T03:25:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d0661ee-ec37-4b95-a546-87acc6bdad51","html_url":"https://github.com/victormoreira92/desafio-emprestimo","commit_stats":null,"previous_names":["victormoreira92/desafio-emprestimo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/victormoreira92/desafio-emprestimo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victormoreira92%2Fdesafio-emprestimo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victormoreira92%2Fdesafio-emprestimo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victormoreira92%2Fdesafio-emprestimo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victormoreira92%2Fdesafio-emprestimo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/victormoreira92","download_url":"https://codeload.github.com/victormoreira92/desafio-emprestimo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/victormoreira92%2Fdesafio-emprestimo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32773377,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"ssl_error","status_checked_at":"2026-05-08T08:22:45.650Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","rails-api","ruby","ruby-on-rails"],"created_at":"2025-03-05T22:26:34.102Z","updated_at":"2026-05-08T08:36:11.956Z","avatar_url":"https://github.com/victormoreira92.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Desafio-Empréstimo\n\nBem-vindo ao projeto **Desafio Empréstimos**! Este é uma API Rest baseada no desafio [BackEnd-BR](https://github.com/backend-br/desafios/blob/master/loans/PROBLEM.md) desenvolvido para determinar quais modalidades de empréstimo uma pessoa tem acesso com base em variáveis como idade, salário e localização.\n\n## Visão Geral\n\nO serviço implementa uma lógica de negócios que avalia três modalidades de empréstimo:\n- **Empréstimo Pessoal**: Taxa de juros de 4%.\n- **Empréstimo Consignado**: Taxa de juros de 2%.\n- **Empréstimo com Garantia**: Taxa de juros de 3%.\n\nA disponibilidade de cada modalidade depende de critérios específicos relacionados à **idade**, **salário** e **localização** do cliente.\n\n## Endpoint da API\n\n### **[POST] `/customer-loans`**\n\nEste endpoint recebe os dados do cliente e retorna as modalidades de empréstimo disponíveis.\n\n#### Requisição\n```json\n{\n    \"age\": 26,\n    \"cpf\": \"27548438923\",\n    \"name\": \"Vuxaywua Zukiagou\",\n    \"income\": 7000.00,\n    \"location\": \"SP\"\n}\n```\n\n- **Parâmetros**:\n  - `age` (integer *obrigatório) Idade do cliente.\n  - `cpf` (string *obrigatório): CPF do cliente (formato livre).\n  - `name` (string *obrigatório): Nome completo do cliente.\n  - `income` (float *obrigatório): Salário mensal do cliente em reais.\n  - `location` (string *obrigatório): Sigla do estado onde o cliente reside (ex.: \"SP\").\n\n#### Resposta\n**Status**: `200 OK`\n```json\n{\n    \"customer\": \"Vuxaywua Zukiagou\",\n    \"loans\": [\n        {\n            \"type\": \"PERSONAL\",\n            \"interest_rate\": 4\n        },\n        {\n            \"type\": \"GUARANTEED\",\n            \"interest_rate\": 3\n        },\n        {\n            \"type\": \"CONSIGNMENT\",\n            \"interest_rate\": 2\n        }\n    ]\n}\n```\n\n- **Campos**:\n  - `customer`: Nome do cliente.\n  - `loans`: Lista de empréstimos disponíveis, cada um com `type` (tipo do empréstimo em maiúsculas) e `interest_rate` (taxa de juros).\n\n## Requisitos de Negócio\n\nAs regras para concessão de empréstimos são as seguintes:\n- **Empréstimo Pessoal**:\n  - Concedido se o salário for **≤ R$ 3.000**.\n  - Concedido se o salário estiver entre **R$ 3.000 e R$ 5.000**, o cliente tiver **menos de 30 anos** e residir em **São Paulo (SP)**.\n- **Empréstimo Consignado**:\n  - Concedido se o salário for **≥ R$ 5.000**.\n- **Empréstimo com Garantia**:\n  - Concedido se o salário for **≤ R$ 3.000**.\n  - Concedido se o salário estiver entre **R$ 3.000 e R$ 5.000**, o cliente tiver **menos de 30 anos** e residir em **São Paulo (SP)**.\n\n## Pré-requisitos\n\nPara rodar o projeto localmente, você precisará de:\n- Ruby 3.x\n- Rails 7.x\n- PostgreSQL (ou outro banco de dados compatível)\n- Gerenciador de dependências como Bundler\n\n## Instalação\n\n1. **Clone o repositório**:\n   ```bash\n   git clone https://github.com/victormoreira92/desafio-emprestimo.git\n   cd desafio-emprestimo\n   ```\n\n2. **Instale as dependências**:\n   ```bash\n   bundle install\n   ```\n\n3. **Configure o banco de dados**:\n   - Edite `config/database.yml` com suas credenciais, se necessário.\n   - Crie e migre o banco:\n     ```bash\n     rails db:create\n     rails db:migrate\n     ```\n\n4. **Inicie o servidor**:\n   ```bash\n   rails server\n   ```\n   O serviço estará disponível em `http://localhost:3000`.\n\n## Uso\n\nFaça uma requisição POST para o endpoint `/customer-loans` usando ferramentas como `curl` ou Postman:\n\n```bash\ncurl -X POST http://localhost:3000/customer-loans \\\n-H \"Content-Type: application/json\" \\\n-d '{\"age\": 26, \"cpf\": \"275.484.389-23\", \"name\": \"Vuxaywua Zukiagou\", \"income\": 7000.00, \"location\": \"SP\"}'\n```\n\nVocê receberá uma resposta JSON com as modalidades de empréstimo disponíveis.\n\n## Estrutura do Projeto\n\n- `app/controllers/customers_controller.rb`: Controlador que processa as requisições.\n- `app/models/customer.rb`: Modelo para clientes.\n- `app/models/loan.rb`: Modelo para empréstimos.\n- `app/serializers/*`: Serializers para formatar a saída JSON (se aplicável).\n\n## Testes\n\nOs testes estão localizados em `spec/` e podem ser executados com:\n```bash\nbundle exec rspec\n```\n\n## Licença\n\nEste projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n---\n\n### Notas\n- **Personalização**: Substitua `https://github.com/seu-usuario/emprestimos.git` pelo URL real do seu repositório.\n- **Expansão**: Se você usar serializers (ex.: `jsonapi-serializer`) ou outras gems, adicione-as na seção de pré-requisitos.\n- **Estilo**: O README segue o padrão Markdown e é claro para iniciantes e desenvolvedores experientes.\n\nSe precisar de ajustes ou quiser incluir mais detalhes (ex.: exemplos de código ou instruções específicas), é só me avisar!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictormoreira92%2Fdesafio-emprestimo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictormoreira92%2Fdesafio-emprestimo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictormoreira92%2Fdesafio-emprestimo/lists"}