11import { getRequiredServerEnvVar } from '../utils/misc.tsx'
22
3- const CONVERT_KIT_API_SECRET = getRequiredServerEnvVar ( 'CONVERT_KIT_API_SECRET ' )
4- const CONVERT_KIT_API_KEY = getRequiredServerEnvVar ( 'CONVERT_KIT_API_KEY ' )
3+ const KIT_API_SECRET = getRequiredServerEnvVar ( 'KIT_API_SECRET ' )
4+ const KIT_API_KEY = getRequiredServerEnvVar ( 'KIT_API_KEY ' )
55
6- type ConvertKitSubscriber = {
6+ type KitSubscriber = {
77 id : number
88 first_name : string
99 email_address : string
@@ -12,37 +12,33 @@ type ConvertKitSubscriber = {
1212 fields : Record < string , string | null >
1313}
1414
15- type ConvertKitTag = {
15+ type KitTag = {
1616 id : string
1717 name : string
1818 created_at : string
1919}
2020
21- async function getConvertKitSubscriber ( email : string ) {
22- const url = new URL ( 'https://api.convertkit .com/v3/subscribers' )
23- url . searchParams . set ( 'api_secret' , CONVERT_KIT_API_SECRET )
21+ async function getKitSubscriber ( email : string ) {
22+ const url = new URL ( 'https://api.kit .com/v3/subscribers' )
23+ url . searchParams . set ( 'api_secret' , KIT_API_SECRET )
2424 url . searchParams . set ( 'email_address' , email )
2525
2626 const resp = await fetch ( url . toString ( ) )
2727 const json = await resp . json ( )
2828 const { subscribers : [ subscriber = { state : 'inactive' } ] = [ ] } = json as {
29- subscribers ?: Array < ConvertKitSubscriber >
29+ subscribers ?: Array < KitSubscriber >
3030 }
3131
3232 return subscriber . state === 'active' ? subscriber : null
3333}
3434
35- async function getConvertKitSubscriberTags (
36- subscriberId : ConvertKitSubscriber [ 'id' ] ,
37- ) {
38- const url = new URL (
39- `https://api.convertkit.com/v3/subscribers/${ subscriberId } /tags` ,
40- )
41- url . searchParams . set ( 'api_secret' , CONVERT_KIT_API_SECRET )
35+ async function getKitSubscriberTags ( subscriberId : KitSubscriber [ 'id' ] ) {
36+ const url = new URL ( `https://api.kit.com/v3/subscribers/${ subscriberId } /tags` )
37+ url . searchParams . set ( 'api_secret' , KIT_API_SECRET )
4238
4339 const resp = await fetch ( url . toString ( ) )
4440 const json = ( await resp . json ( ) ) as {
45- tags : Array < ConvertKitTag >
41+ tags : Array < KitTag >
4642 }
4743 return json . tags
4844}
@@ -54,14 +50,14 @@ async function ensureSubscriber({
5450 email : string
5551 firstName : string
5652} ) {
57- let subscriber = await getConvertKitSubscriber ( email )
53+ let subscriber = await getKitSubscriber ( email )
5854 if ( ! subscriber ) {
5955 // this is a basic form that doesn't really do anything. It's just a way to
6056 // get the users on the mailing list
6157 subscriber = await addSubscriberToForm ( {
6258 email,
6359 firstName,
64- convertKitFormId : '2500372' ,
60+ KitFormId : '2500372' ,
6561 } )
6662 }
6763
@@ -71,53 +67,53 @@ async function ensureSubscriber({
7167async function addSubscriberToForm ( {
7268 email,
7369 firstName,
74- convertKitFormId ,
70+ KitFormId ,
7571} : {
7672 email : string
7773 firstName : string
78- convertKitFormId : string
74+ KitFormId : string
7975} ) {
8076 const subscriberData = {
81- api_key : CONVERT_KIT_API_KEY ,
82- api_secret : CONVERT_KIT_API_SECRET ,
77+ api_key : KIT_API_KEY ,
78+ api_secret : KIT_API_SECRET ,
8379 first_name : firstName ,
8480 email,
8581 }
8682
8783 // this is a basic form that doesn't really do anything. It's just a way to
8884 // get the users on the mailing list
8985 const response = await fetch (
90- `https://api.convertkit .com/v3/forms/${ convertKitFormId } /subscribe` ,
86+ `https://api.kit .com/v3/forms/${ KitFormId } /subscribe` ,
9187 {
9288 method : 'POST' ,
9389 body : JSON . stringify ( subscriberData ) ,
9490 headers : { 'Content-Type' : 'application/json' } ,
9591 } ,
9692 )
9793 const json = ( await response . json ( ) ) as {
98- subscription : { subscriber : ConvertKitSubscriber }
94+ subscription : { subscriber : KitSubscriber }
9995 }
10096 return json . subscription . subscriber
10197}
10298
10399async function addTagToSubscriber ( {
104100 email,
105101 firstName,
106- convertKitTagId ,
102+ kitTagId ,
107103} : {
108104 email : string
109105 firstName : string
110- convertKitTagId : string
106+ kitTagId : string
111107} ) {
112108 await ensureSubscriber ( { email, firstName } )
113109 const subscriberData = {
114- api_key : CONVERT_KIT_API_KEY ,
115- api_secret : CONVERT_KIT_API_SECRET ,
110+ api_key : KIT_API_KEY ,
111+ api_secret : KIT_API_SECRET ,
116112 first_name : firstName ,
117113 email,
118114 }
119115
120- const subscribeUrl = `https://api.convertkit .com/v3/tags/${ convertKitTagId } /subscribe`
116+ const subscribeUrl = `https://api.kit .com/v3/tags/${ kitTagId } /subscribe`
121117 const response = await fetch ( subscribeUrl , {
122118 method : 'POST' ,
123119 body : JSON . stringify ( subscriberData ) ,
@@ -126,7 +122,7 @@ async function addTagToSubscriber({
126122 } ,
127123 } )
128124 const json = ( await response . json ( ) ) as {
129- subscription : { subscriber : ConvertKitSubscriber }
125+ subscription : { subscriber : KitSubscriber }
130126 }
131127 return json . subscription . subscriber
132128}
@@ -140,12 +136,12 @@ async function tagKCDSiteSubscriber({
140136 firstName : string
141137 fields : Record < string , string >
142138} ) {
143- const subscriber = await getConvertKitSubscriber ( email )
139+ const subscriber = await getKitSubscriber ( email )
144140 const kcdTagId = '2466369'
145141 const kcdSiteForm = '2393887'
146142 const subscriberData = {
147- api_key : CONVERT_KIT_API_KEY ,
148- api_secret : CONVERT_KIT_API_SECRET ,
143+ api_key : KIT_API_KEY ,
144+ api_secret : KIT_API_SECRET ,
149145 first_name : firstName ,
150146 email,
151147 fields,
@@ -156,8 +152,8 @@ async function tagKCDSiteSubscriber({
156152 // tag to existing subscribers who have already confirmed.
157153 // This form auto-adds the tag to new subscribers
158154 const subscribeUrl = subscriber
159- ? `https://api.convertkit .com/v3/tags/${ kcdTagId } /subscribe`
160- : `https://api.convertkit .com/v3/forms/${ kcdSiteForm } /subscribe`
155+ ? `https://api.kit .com/v3/tags/${ kcdTagId } /subscribe`
156+ : `https://api.kit .com/v3/forms/${ kcdSiteForm } /subscribe`
161157 const updatedRes = await fetch ( subscribeUrl , {
162158 method : 'POST' ,
163159 body : JSON . stringify ( subscriberData ) ,
@@ -166,14 +162,14 @@ async function tagKCDSiteSubscriber({
166162 } ,
167163 } )
168164 const updatedJson = ( await updatedRes . json ( ) ) as {
169- subscription : { subscriber : ConvertKitSubscriber }
165+ subscription : { subscriber : KitSubscriber }
170166 }
171167 return updatedJson . subscription . subscriber
172168}
173169
174170export {
175- getConvertKitSubscriber ,
176- getConvertKitSubscriberTags ,
171+ getKitSubscriber ,
172+ getKitSubscriberTags ,
177173 tagKCDSiteSubscriber ,
178174 addTagToSubscriber ,
179175 addSubscriberToForm ,
0 commit comments