Skip to content

Commit

Permalink
Add webhook type check
Browse files Browse the repository at this point in the history
  • Loading branch information
goncy committed Nov 7, 2024
1 parent e0673bb commit 101531a
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 16 deletions.
21 changes: 12 additions & 9 deletions integraciones/suscripciones/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,15 +142,18 @@ import api, {mercadopago} from "@/api";

export async function POST(request: Request) {
// Obtenemos el cuerpo de la petición que incluye el tipo de notificación
const body: {data: {id: string}} = await request.json();

// Obtenemos la suscripción
const preapproval = await new PreApproval(mercadopago).get({id: body.data.id});

// Si se aprueba, actualizamos el usuario con el id de la suscripción
if (preapproval.status === "authorized") {
// Actualizamos el usuario con el id de la suscripción
await api.user.update({suscription: preapproval.id});
const body: {data: {id: string}; type: string} = await request.json();

// Solo nos interesan las notificaciones de suscripciones
if (body.type === "subscription_preapproval") {
// Obtenemos la suscripción
const preapproval = await new PreApproval(mercadopago).get({id: body.data.id});

// Si se aprueba, actualizamos el usuario con el id de la suscripción
if (preapproval.status === "authorized") {
// Actualizamos el usuario con el id de la suscripción
await api.user.update({suscription: preapproval.id});
}
}

// Respondemos con un estado 200 para indicarle que la notificación fue recibida
Expand Down
17 changes: 10 additions & 7 deletions integraciones/suscripciones/src/app/api/mercadopago/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,18 @@ import api, {mercadopago} from "@/api";

export async function POST(request: Request) {
// Obtenemos el cuerpo de la petición que incluye el tipo de notificación
const body: {data: {id: string}} = await request.json();
const body: {data: {id: string}; type: string} = await request.json();

// Obtenemos la suscripción
const preapproval = await new PreApproval(mercadopago).get({id: body.data.id});
// Solo nos interesan las notificaciones de suscripciones
if (body.type === "subscription_preapproval") {
// Obtenemos la suscripción
const preapproval = await new PreApproval(mercadopago).get({id: body.data.id});

// Si se aprueba, actualizamos el usuario con el id de la suscripción
if (preapproval.status === "authorized") {
// Actualizamos el usuario con el id de la suscripción
await api.user.update({suscription: preapproval.id});
// Si se aprueba, actualizamos el usuario con el id de la suscripción
if (preapproval.status === "authorized") {
// Actualizamos el usuario con el id de la suscripción
await api.user.update({suscription: preapproval.id});
}
}

// Respondemos con un estado 200 para indicarle que la notificación fue recibida
Expand Down

0 comments on commit 101531a

Please sign in to comment.