11import { NextApiRequest , NextApiResponse } from 'next'
22import { NextResponse } from 'next/server'
33import type { NextRequest } from 'next/server'
4- import { buttondownHandler } from './buttondown'
5- import { convertkitHandler } from './convertkit'
6- import { mailchimpHandler } from './mailchimp'
7- import { klaviyoHandler } from './klaviyo'
8- import { revueHandler } from './revue'
9- import { emailOctopusHandler } from './emailOctopus'
4+ import { buttondownSubscribe } from './buttondown'
5+ import { convertkitSubscribe } from './convertkit'
6+ import { mailchimpSubscribe } from './mailchimp'
7+ import { klaviyoSubscribe } from './klaviyo'
8+ import { revueSubscribe } from './revue'
9+ import { emailOctopusSubscribe } from './emailOctopus'
1010
1111export interface NewsletterConfig {
1212 provider : 'buttondown' | 'convertkit' | 'klaviyo' | 'mailchimp' | 'revue' | 'emailoctopus'
@@ -31,22 +31,22 @@ async function NewsletterAPIHandler(
3131 let response : Response
3232 switch ( options . provider ) {
3333 case 'buttondown' :
34- response = await buttondownHandler ( req )
34+ response = await buttondownSubscribe ( email )
3535 break
3636 case 'convertkit' :
37- response = await convertkitHandler ( req )
37+ response = await convertkitSubscribe ( email )
3838 break
3939 case 'mailchimp' :
40- response = await mailchimpHandler ( req )
40+ response = await mailchimpSubscribe ( email )
4141 break
4242 case 'klaviyo' :
43- response = await klaviyoHandler ( req )
43+ response = await klaviyoSubscribe ( email )
4444 break
4545 case 'revue' :
46- response = await revueHandler ( req )
46+ response = await revueSubscribe ( email )
4747 break
4848 case 'emailoctopus' :
49- response = await emailOctopusHandler ( req )
49+ response = await emailOctopusSubscribe ( email )
5050 break
5151 default :
5252 res . status ( 500 ) . json ( { error : `${ options . provider } not supported` } )
@@ -61,30 +61,30 @@ async function NewsletterAPIHandler(
6161}
6262
6363async function NewsletterRouteHandler ( req : NextRequest , options : NewsletterConfig ) {
64- const res = await req . json ( )
65- if ( ! res . email ) {
64+ const { email } = await req . json ( )
65+ if ( ! email ) {
6666 return NextResponse . json ( { error : 'Email is required' } , { status : 400 } )
6767 }
6868 try {
6969 let response : Response
7070 switch ( options . provider ) {
7171 case 'buttondown' :
72- response = await buttondownHandler ( req )
72+ response = await buttondownSubscribe ( email )
7373 break
7474 case 'convertkit' :
75- response = await convertkitHandler ( req )
75+ response = await convertkitSubscribe ( email )
7676 break
7777 case 'mailchimp' :
78- response = await mailchimpHandler ( req )
78+ response = await mailchimpSubscribe ( email )
7979 break
8080 case 'klaviyo' :
81- response = await klaviyoHandler ( req )
81+ response = await klaviyoSubscribe ( email )
8282 break
8383 case 'revue' :
84- response = await revueHandler ( req )
84+ response = await revueSubscribe ( email )
8585 break
8686 case 'emailoctopus' :
87- response = await emailOctopusHandler ( req )
87+ response = await emailOctopusSubscribe ( email )
8888 break
8989 default :
9090 return NextResponse . json ( { error : `${ options . provider } not supported` } , { status : 500 } )
0 commit comments