diff --git a/README.md b/README.md index 0d13502..469ea8e 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Api gateway pdv. - [ ] RN01: Pagamento via PIX deve ser concluído em 30 minutos. - [ ] RN02: Produtos com pagamentos pendentes não podem ser deletados. - [ ] RN03: Pagamentos só podem ser feitos para produtos com estoque disponível. -- [ ] RN04: Valor mínimo para transações é R$ 1,00. +- [x] RN04: Valor mínimo para transações é R$ 1,00. - [ ] RN05: Cada pagamento deve estar vinculado a um produto. - [ ] RN06: Notificação por e-mail após compra. - [ ] RN07: Preço de produto só pode ser atualizado sem pedidos pendentes. diff --git a/package.json b/package.json index 7ac2548..d9225b7 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,7 @@ "lint": "npx @biomejs/biome lint --write ./", "lint:check": "npx @biomejs/biome check --write ./" }, - "keywords": [ - "api", - "api gateway" - ], + "keywords": ["api", "api gateway"], "author": "fabio", "license": "MIT", "dependencies": { diff --git a/src/@types/PaymentData.ts b/src/@types/PaymentData.ts index 0f6f298..0e8aec5 100644 --- a/src/@types/PaymentData.ts +++ b/src/@types/PaymentData.ts @@ -1,6 +1,9 @@ export interface PaymentData { - // Defina a estrutura esperada para o paymentData aqui - amount: number + transaction_amount: number description: string + payment_method_id: string + payer: { + email: string + } // Adicione outros campos conforme necessário } diff --git a/src/app.ts b/src/app.ts index e2b8849..3b49f44 100644 --- a/src/app.ts +++ b/src/app.ts @@ -10,7 +10,7 @@ app.use(express.json()) app.use(cors()) -app.get('/', (_req, res) => { +app.get('/', (_req, res) => { res.send('🚀 Api next payment funcionando') }) @@ -19,5 +19,4 @@ app.use('/api/products', productRoutes) app.use('/api/payments', paymentRoutes) app.use('/api', authRoutes) // Adicione '/api' como prefixo para as rotas de autenticação - export default app diff --git a/src/controllers/paymentController.ts b/src/controllers/paymentController.ts index 2776fc2..750af2a 100644 --- a/src/controllers/paymentController.ts +++ b/src/controllers/paymentController.ts @@ -5,10 +5,16 @@ import * as paymentService from '../services/paymentService' export const createPayment = async (req: Request, res: Response) => { try { const paymentData: PaymentData = req.body + console.log(req.body) + + if (paymentData.transaction_amount < 1.0) { + return res.status(400).json('Valor deve ser maior que 1 real') // Added return here + } + console.log('🚀 ~ createPayment ~ paymentData:', paymentData) const paymentResponse = await paymentService.createPayment(paymentData) - res.status(201).json(paymentResponse) + return res.status(201).json(paymentResponse) // Ensure you return after sending a response } catch (error) { - res.status(400).json({ message: (error as Error).message }) + return res.status(400).json({ message: (error as Error).message }) // Added return here too } } diff --git a/src/controllers/productController.ts b/src/controllers/productController.ts index 9b6fa34..89cce04 100644 --- a/src/controllers/productController.ts +++ b/src/controllers/productController.ts @@ -5,7 +5,6 @@ import * as productService from '../services/productService' import { uploadImage } from '../services/imgBbServices' import axios from 'axios' - import imgbbUploader from 'imgbb-uploader' export const createProduct = async (req: Request, res: Response) => { try { @@ -21,7 +20,7 @@ export const createProduct = async (req: Request, res: Response) => { 'https://api.imgbb.com/1/upload', { key: process.env.IMGBB_API_KEY, // Substitua pela sua chave de API - image: imageData + image: imageData, }, { headers: { @@ -42,7 +41,6 @@ export const createProduct = async (req: Request, res: Response) => { } } - export const getProducts = async (req: Request, res: Response) => { try { const products = await productService.getProducts() diff --git a/src/services/imgBbServices.ts b/src/services/imgBbServices.ts index 080574e..12ca54f 100644 --- a/src/services/imgBbServices.ts +++ b/src/services/imgBbServices.ts @@ -5,7 +5,7 @@ export const uploadImage = async (imagePath: string) => { try { const response = await imgbbUploader({ apiKey, - imagePath + imagePath, }) return response.url } catch (error) {