From 23199f7ee8afe0fe8d110f1e60e5112fc8ba6b9a Mon Sep 17 00:00:00 2001 From: Roberto Cestari Date: Mon, 9 Sep 2024 11:03:40 -0300 Subject: [PATCH] gastos dos senadores --- .vscode/settings.json | 3 + src/app/gastos-senadores/page.mdx | 463 ++++++++++++++++++++++++++++++ src/components/Navigation.tsx | 15 +- src/components/Resources.tsx | 21 +- 4 files changed, 492 insertions(+), 10 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 src/app/gastos-senadores/page.mdx diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7c2feb7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "editor.formatOnSave": false +} diff --git a/src/app/gastos-senadores/page.mdx b/src/app/gastos-senadores/page.mdx new file mode 100644 index 0000000..d544341 --- /dev/null +++ b/src/app/gastos-senadores/page.mdx @@ -0,0 +1,463 @@ +export const metadata = { + title: 'Gastos dos Senadores - API', + description: 'Aprenda sobre a API de gastos dos senadores.', +} + +# Gastos dos Senadores - API + +A API de Gastos dos Senadores é uma API que disponibiliza dados reais sobre os gastos dos senadores brasileiros. Ela pode ser utilizada para fins de pesquisa, jornalismo, desenvolvimento de projetos e outras iniciativas que visem a transparência e o controle público dos recursos públicos. {{ className: 'lead' }} + +Trata-se de uma série de endpoints que fornecem informações detalhadas sobre os gastos realizados por cada senador, incluindo informações sobre o partido, o valor, a data, a descrição e o tipo de gasto. {{ className: 'lead' }} + +> A API de Gastos dos Senadores é uma API pública e gratuita. Ela é atualizada periodicamente com os dados mais recentes disponíveis no Portal da Transparência do Senado Federal. + +## Contexto - Cotas para Exercício da Atividade Parlamentar (CEAP) + +Os gastos dos senadores são uma parte importante da transparência e da prestação de contas no Brasil. Aqui, nesta API estamos considerando exclusivamente os chamados "gastos de gabinete", que são os recursos disponíveis para os senadores para o exercício de suas atividades parlamentares - tais como aluguel de imóveis, passagens aéreas, combustíveis, alimentação, hospedagem, entre outros. + +Em termos técnicos, os gastos de gabinete são chamados de "Cota para o Exercício da Atividade Parlamentar" (CEAP) e são regulamentados pela Resolução do Senado Federal nº 23/2007. Essa cota é destinada ao custeio exclusivo de despesas vinculadas ao exercício da atividade parlamentar não podendo ser utilizadas para outros fins. + +Mais informações estão disponíveis [nesse link](https://www12.senado.leg.br/institucional/documentos/seminarios/conhecendo-o-senado/pdfs/cotas-safin.pdf) + +## Frequência de Atualização + +Os dados da API são atualizados diariamente com base nas informações disponíveis no Portal da Transparência do Senado Federal. + +Se você encontrar quaisquer inconsistências ou erros nos dados, por favor, entre em contato conosco para que possamos corrigi-los o mais rápido possível 🚀 + +## Autenticação + +A API de Gastos dos Senadores não requer autenticação para acessar os endpoints. + +## Rate Limit + +A API de Gastos dos Senadores possui um limite de taxa de 100 solicitações por minuto. Se você exceder esse limite, receberá um código de status 429. O uso indiscriminado também poderá levar ao bloqueio do seu IP. + +## Base URL + +A URL base para a API de gastos dos senadores do Codante.io é `https://apis.codante.io/senator-expenses`. + +--- + +## Lista de Senadores {{ tag: 'GET', label: '/senators' }} + +Este endpoint lista todos os senadores com informações básicas, como nome completo, partido, estado e outros detalhes relevantes. Esse endpoint é paginado e traz 100 senadores por página. + + + + + ### Atributos opcionais + + + + Filtra apenas os parlamentares que estão com mandato ativo atualmente. + + + Filtra por estado (ex: "SP", "RJ"). + + + Filtra por partido. Para uma lista completa, vide endpoint `parties`. + + + + + + + + ```bash {{ title: 'cURL' }} + curl -G https://apis.codante.io/senator-expenses/senators + ``` + + ```js + const response = await fetch('https://apis.codante.io/senator-expenses/senators') + const senators = await response.json() + ``` + + + ```json {{ title: 'Response' }} + { + "data": [ + { + "id": 42068, + "name": "Leila Barros", + "full_name": "Leila Gomes de Barros Rêgo", + "gender": "Feminino", + "UF": "DF", + "avatar_url": "http:\/\/www.senado.leg.br\/senadores\/img\/fotos-oficiais\/senador5979.jpg", + "homepage": "http:\/\/www25.senado.leg.br\/web\/senadores\/senador\/-\/perfil\/5979", + "email": "sen.leilabarros@senado.leg.br", + "party": "PDT", + "is_titular": 1, + "is_active": 1 + }, + // ... + ], + "links": { + "first": "http:\/\/127.0.0.1:8000\/senator-expenses\/senators?page=1", + "last": "http:\/\/127.0.0.1:8000\/senator-expenses\/senators?page=20", + "prev": null, + "next": "http:\/\/127.0.0.1:8000\/senator-expenses\/senators?page=2" + }, + "meta": { + "current_page": 1, + "from": 1, + "last_page": 20, + "links": [ + // ... + ], + "path": "http:\/\/127.0.0.1:8000\/senator-expenses\/senators", + "per_page": 100, + "to": 100, + "total": 1943 + } + ] + } + ``` + + + + +--- +## Gastos de um Senador {{ tag: 'GET', label: '/senators/{senatorId}/expenses' }} + +Exibe os gastos realizados por um senador específico, com informações detalhadas sobre cada gasto, como data, valor, descrição e tipo de gasto. Esse endpoint é paginado e traz 100 gastos por página. + +A chave `meta` traz também o valor total dos gastos daquele senador bem como a quantidade de lançamentos (`expenses_sum`, `expenses_avg` e `expenses_count`). + + + + + ### Atributos opcionais + + + + Filtra apenas as despesas do ano específico. Exemplo: `2023`. + + + + + + + + ```bash {{ title: 'cURL' }} + curl -G https://apis.codante.io/senator-expenses/senators/42068/expenses + ``` + + ```js + const response = await fetch('https://apis.codante.io/senator-expenses/senators/42068/expenses') + const senators = await response.json() + ``` + + + ```json {{ title: 'Response' }} + { + "data": [ + { + "id": 26314, + "original_id": "2193941", + "date": "2023-01-26T00:00:00.000000Z", + "amount": "700.00", + "expense_category": "Aluguel de imóveis para escritório político, compreendendo despesas concernentes a eles.", + "description": null, + "supplier": "SEMEAR CONSULTORIA IMOBILIARIA LTDA", + "supplier_document": "12.239.769\/0001-46", + "senator": { + "id": 42068, + "name": "Leila Barros", + "party": "PDT", + "UF": "DF", + "is_active": 1 + } + }, + // ... + ], + "links": { + // ... + }, + "meta": { + "current_page": 1, + "from": 1, + "last_page": 1, + "links": [ + // ... + ], + "path": "http:\/\/127.0.0.1:8000\/senator-expenses\/senators\/42068\/expenses", + "per_page": 100, + "to": 92, + "total": 92, + "expenses_sum": "185180.97", + "expenses_avg": "2012.84", + "expenses_count": 92 + } + } + ``` + + + +--- + +## Lista de Partidos {{ tag: 'GET', label: '/parties' }} + +Lista todos os partidos políticos dos senadores. Traz apenas a sigla do partido. + + + + + + + + + + ```bash {{ title: 'cURL' }} + curl -G https://apis.codante.io/senator-expenses/parties + ``` + + ```js + const response = await fetch('https://apis.codante.io/senator-expenses/parties') + const orders = await response.json() + ``` + + + ```json {{ title: 'Response' }} + { + "data": [ + { + "id": "AVANTE" + }, + { + "id": "CIDADANIA" + }, + // ... + ] + } + ``` + + + + +--- + +## Gastos de um Partido {{ tag: 'GET', label: '/parties/{partyId}/expenses' }} + +Lista todos os gastos realizados por senadores de um partido específico, com informações detalhadas sobre cada gasto, como data, valor, descrição, tipo de gasto e senador responsável. Esse endpoint é paginado e traz 100 gastos por página. + +A chave `meta` traz também o valor total dos gastos daquele partido bem como a quantidade total de lançamentos e de senadores (`expenses_sum`, `expenses_avg`, `expenses_count`, `senators_count`). + + + + + ### Atributos opcionais + + + + Filtra apenas as despesas do ano específico. Exemplo: `2023`. + + + + + + + + ```bash {{ title: 'cURL' }} + curl -G https://apis.codante.io/senator-expenses/parties/MDB/expenses + ``` + + ```js + const response = await fetch('https://apis.codante.io/senator-expenses/parties/MDB/expenses') + const senators = await response.json() + ``` + + + ```json {{ title: 'Response' }} + { + "data": [ + { + "id": 58414, + "original_id": "2228361", + "date": "2025-05-17T00:00:00.000000Z", + "amount": "2400.00", + "expense_category": "Locomoção, hospedagem, alimentação, combustíveis e lubrificantes", + "description": null, + "supplier": "HOTEL PHENICIA LTDA", + "supplier_document": "00.469.171\/0003-26", + "senator": { + "id": 41995, + "name": "Alessandro Vieira", + "party": "MDB", + "UF": "SE", + "is_active": 1 + } + }, + // ... + ], + "links": { + // ... + }, + "meta": { + "current_page": 1, + "from": 1, + "last_page": 1, + "links": [ + // ... + ], + "path": "http:\/\/127.0.0.1:8000\/senator-expenses\/senators\/42068\/expenses", + "per_page": 100, + "to": 92, + "total": 92, + "expenses_sum": "18299148.34", + "expenses_avg": "1427.39", + "expenses_count": 12820, + "senators_count": 20, + } + } + ``` + + + +--- + +## Gastos por UF {{ tag: 'GET', label: '/uf/{uf}/expenses' }} + +Lista todos os gastos realizados por senadores de uma determinada Unidade Federativa (UF), com informações detalhadas sobre cada gasto, como data, valor, descrição, tipo de gasto e senador responsável. Esse endpoint é paginado e traz 100 gastos por página. + +A chave `meta` traz também o valor total dos gastos daquele partido bem como a quantidade total de lançamentos (`expenses_sum`, `expenses_avg`, `expenses_count`). + + + + + ### Atributos opcionais + + + + Filtra apenas as despesas do ano específico. Exemplo: `2023`. + + + + + + + + ```bash {{ title: 'cURL' }} + curl -G https://apis.codante.io/senator-expenses/uf/SP/expenses + ``` + + ```js + const response = await fetch('https://apis.codante.io/senator-expenses/uf/SP/expenses') + const senators = await response.json() + ``` + + + ```json {{ title: 'Response' }} + { + "data": [ + { + "id": 58147, + "original_id": "2219693", + "date": "2023-12-29T00:00:00.000000Z", + "amount": "320.85", + "expense_category": "Passagens aéreas, aquáticas e terrestres nacionais", + "description": "Companhia Aérea: Aerotur Serviços, Localizador: COWERD. Passageiros: CHRISTIANE GONÇALVES CORRÊA (Matrícula 395903, COMISSIONADO), Voo: 3581 - CGH\/BSB - 04\/03\/24; ", + "supplier": "Aerotur Serviços", + "supplier_document": "05.120.923\/0001-09", + "senator": { + "id": 42147, + "name": "Astronauta Marcos Pontes", + "party": "PL", + "UF": "SP", + "is_active": 1 + } + }, + // ... + ], + "links": { + // ... + }, + "meta": { + "current_page": 1, + "from": 1, + "last_page": 1, + "links": [ + // ... + ], + "path": "http:\/\/127.0.0.1:8000\/senator-expenses\/uf\/SP\/expenses", + "per_page": 100, + "to": 100, + "total": 1412, + "expenses_sum": "937709.96", + "expenses_avg": "664.10", + "expenses_count": 1412, + } + } + ``` + + + +--- +## Lista de Gastos {{ tag: 'GET', label: '/expenses' }} + +Lista todos os gastos realizados pelos senadores, com informações detalhadas sobre cada gasto, como data, valor, descrição, tipo de gasto e senador responsável. Esse endpoint é paginado e traz 100 gastos por página. + + + + + ### Atributos opcionais + + Não há filtros neste endpoint, apenas paginação. + + + + + + + ```bash {{ title: 'cURL' }} + curl -G https://apis.codante.io/senator-expenses/expenses + ``` + + ```js + const response = await fetch('https://apis.codante.io/senator-expenses/expenses') + const senators = await response.json() + ``` + + + ```json {{ title: 'Response' }} + { + "data": [ + { + "id": 19628, + "original_id": "2205139", + "date": "2023-07-30T00:00:00.000000Z", + "amount": "240.04", + "expense_category": "Locomoção, hospedagem, alimentação, combustíveis e lubrificantes", + "description": null, + "supplier": "COMERCIO DE COMBUSTIVEIS NEVOEIRO LTDA", + "supplier_document": "95.425.369\/0026-00", + "senator": { + "id": 42072, + "name": "Luis Carlos Heinze", + "party": "PP", + "UF": "RS", + "is_active": 1 + } + }, + // ... + ], + "links": { + // ... + }, + "meta": { + "current_page": 1, + "from": 1, + "last_page": 1, + "links": [ + // ... + ], + "path": "http:\/\/127.0.0.1:8000\/senator-expenses\/expenses", + "per_page": 100, + "to": 100, + "total": 79515, + } + } + ``` + + + diff --git a/src/components/Navigation.tsx b/src/components/Navigation.tsx index 34fb660..7e6f8d0 100644 --- a/src/components/Navigation.tsx +++ b/src/components/Navigation.tsx @@ -245,8 +245,13 @@ export const navigation: Array = [ title: 'APIs do Codante', links: [ // { title: 'Frases Motivacionais', href: '/frases-motivacionais' }, - { title: 'Orders API (Pedidos)', href: '/orders-api' }, - { title: 'API de Cadastro de Usuário', href: '/register-user' }, + { title: '📦 Orders API (Pedidos)', href: '/orders-api' }, + { title: '👥 API de Cadastro de Usuário', href: '/register-user' }, + { title: '🇧🇷 Atletas Brasileiros - DB', href: '/atletas-brasileiros' }, + { + title: '💸 Gastos dos Senadores do Brasil', + href: '/gastos-senadores', + }, ], }, { @@ -259,12 +264,6 @@ export const navigation: Array = [ }, ], }, - { - title: '🇧🇷 Atletas Brasileiros - Database', - links: [ - { title: 'Atletas Brasileiros - DB', href: '/atletas-brasileiros' }, - ], - }, ] export function Navigation(props: React.ComponentPropsWithoutRef<'nav'>) { diff --git a/src/components/Resources.tsx b/src/components/Resources.tsx index 2a83aa5..bda3c7d 100644 --- a/src/components/Resources.tsx +++ b/src/components/Resources.tsx @@ -18,6 +18,9 @@ import { UserIcon } from '@/components/icons/UserIcon' import { UsersIcon } from '@/components/icons/UsersIcon' import { CartIcon } from './icons/CartIcon' import { BoltIcon } from './icons/BoltIcon' +import { CiMoneyCheck1 } from 'react-icons/ci' +import { FcMoneyTransfer } from 'react-icons/fc' +import { PiMoneyWavyDuotone } from 'react-icons/pi' interface Resource { href: string @@ -91,6 +94,20 @@ const resources: Array = [ squares: [[0, 1]], }, }, + { + href: '/gastos-senadores', + name: 'Gastos dos Senadores', + description: + 'API com os gastos dos senadores do Brasil, com dados abertos e atualizados - incluindo partidos, estados e mais', + icon: PiMoneyWavyDuotone, + pattern: { + y: 32, + squares: [ + [0, 2], + [1, 4], + ], + }, + }, // { // href: '/messages', // name: 'Messages', @@ -120,8 +137,8 @@ const resources: Array = [ function ResourceIcon({ icon: Icon }: { icon: Resource['icon'] }) { return ( -
- +
+
) }