Delete subscription if unsub
This commit is contained in:
@ -52,7 +52,6 @@ export const saveSubscription = async ({
|
||||
name,
|
||||
newsletterEmail: { id: newsletterEmail.id },
|
||||
user: { id: userId },
|
||||
status: SubscriptionStatus.Active,
|
||||
unsubscribeHttpUrl,
|
||||
unsubscribeMailTo,
|
||||
icon,
|
||||
@ -63,9 +62,7 @@ export const saveSubscription = async ({
|
||||
return result.identifiers[0].id as string
|
||||
}
|
||||
|
||||
export const unsubscribe = async (
|
||||
subscription: Subscription
|
||||
): Promise<Subscription> => {
|
||||
export const unsubscribe = async (subscription: Subscription) => {
|
||||
if (subscription.unsubscribeMailTo) {
|
||||
// unsubscribe by sending email first
|
||||
await sendUnsubscribeEmail(
|
||||
@ -79,9 +76,8 @@ export const unsubscribe = async (
|
||||
throw new Error('No unsubscribe method defined')
|
||||
}
|
||||
|
||||
// set status to unsubscribed
|
||||
subscription.status = SubscriptionStatus.Unsubscribed
|
||||
return getRepository(Subscription).save(subscription)
|
||||
// delete the subscription
|
||||
await getRepository(Subscription).delete(subscription.id)
|
||||
}
|
||||
|
||||
export const unsubscribeAll = async (
|
||||
@ -91,7 +87,6 @@ export const unsubscribeAll = async (
|
||||
const subscriptions = await getRepository(Subscription).find({
|
||||
where: {
|
||||
user: { id: newsletterEmail.user.id },
|
||||
status: SubscriptionStatus.Active,
|
||||
newsletterEmail: { id: newsletterEmail.id },
|
||||
},
|
||||
relations: ['newsletterEmail'],
|
||||
|
||||
@ -6,6 +6,7 @@ import 'mocha'
|
||||
import { User } from '../../src/entity/user'
|
||||
import { getRepository } from '../../src/entity/utils'
|
||||
import { NewsletterEmail } from '../../src/entity/newsletter_email'
|
||||
import { SubscriptionStatus } from '../../src/generated/graphql'
|
||||
|
||||
describe('Subscriptions API', () => {
|
||||
let user: User
|
||||
@ -31,6 +32,12 @@ describe('Subscriptions API', () => {
|
||||
// create testing subscriptions
|
||||
const sub1 = await createTestSubscription(user, 'sub_1', newsletterEmail)
|
||||
const sub2 = await createTestSubscription(user, 'sub_2', newsletterEmail)
|
||||
await createTestSubscription(
|
||||
user,
|
||||
'sub_3',
|
||||
newsletterEmail,
|
||||
SubscriptionStatus.Unsubscribed
|
||||
)
|
||||
subscriptions = [sub2, sub1]
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user