Save icon in the subscription table

This commit is contained in:
Hongbo Wu 2022-09-27 12:12:47 +08:00
parent 94719a5cce
commit 5d62d92974
3 changed files with 31 additions and 15 deletions

View file

@ -28,6 +28,7 @@ interface ForwardEmailMessage {
unsubHttpUrl?: string
text?: string
forwardedFrom?: string
icon?: string
}
const logger = buildLogger('app.dispatch')
@ -92,6 +93,7 @@ export function emailsServiceRouter() {
unsubMailTo: data.unsubMailTo,
unsubHttpUrl: data.unsubHttpUrl,
newsletterEmail,
icon: data.icon,
},
ctx
)

View file

@ -22,6 +22,7 @@ interface NewsletterMessage {
unsubMailTo?: string
unsubHttpUrl?: string
newsletterEmail?: NewsletterEmail
icon?: string
}
// Returns true if the link was created successfully. Can still fail to
@ -71,14 +72,15 @@ export const saveNewsletterEmail = async (
}
// creates or updates subscription
const subscription = await saveSubscription(
newsletterEmail.user.id,
data.author,
newsletterEmail.address,
data.unsubMailTo,
data.unsubHttpUrl
)
console.log('subscription', subscription)
const subscription = await saveSubscription({
userId: newsletterEmail.user.id,
name: data.author,
newsletterEmail: newsletterEmail.address,
unsubscribeMailTo: data.unsubMailTo,
unsubscribeHttpUrl: data.unsubHttpUrl,
icon: data.icon,
})
console.log('subscription saved', subscription)
// adds newsletters label to page
const result = await addLabelToPage(saveCtx, page.id, {

View file

@ -6,6 +6,15 @@ import axios from 'axios'
import { NewsletterEmail } from '../entity/newsletter_email'
import { createNewsletterEmail } from './newsletters'
interface SaveSubscriptionInput {
userId: string
name: string
newsletterEmail: string
unsubscribeMailTo?: string
unsubscribeHttpUrl?: string
icon?: string
}
const sendUnsubscribeEmail = async (
unsubscribeMailTo: string,
newsletterEmail: string
@ -30,13 +39,14 @@ const sendUnsubscribeHttpRequest = async (url: string): Promise<void> => {
}
}
export const saveSubscription = async (
userId: string,
name: string,
newsletterEmail: string,
unsubscribeMailTo?: string,
unsubscribeHttpUrl?: string
): Promise<Subscription> => {
export const saveSubscription = async ({
userId,
name,
newsletterEmail,
unsubscribeMailTo,
unsubscribeHttpUrl,
icon,
}: SaveSubscriptionInput): Promise<Subscription> => {
const subscription = await getRepository(Subscription).findOneBy({
name,
user: { id: userId },
@ -46,6 +56,7 @@ export const saveSubscription = async (
// if subscription already exists, updates updatedAt
subscription.status = SubscriptionStatus.Active
subscription.newsletterEmail = newsletterEmail
icon && (subscription.icon = icon)
unsubscribeMailTo && (subscription.unsubscribeMailTo = unsubscribeMailTo)
unsubscribeHttpUrl && (subscription.unsubscribeHttpUrl = unsubscribeHttpUrl)
return getRepository(Subscription).save(subscription)
@ -59,6 +70,7 @@ export const saveSubscription = async (
status: SubscriptionStatus.Active,
unsubscribeHttpUrl,
unsubscribeMailTo,
icon,
})
}