Newer
Older
import axios, { AxiosRequestConfig } from 'axios'
import { IMailSubject } from '../models/mailSubject.model'
import { IMonthlyInfo } from '../models/monthlyInfo.model'
import { IMonthlyNews } from '../models/monthlyNews.model'
export class NewsletterService {
/**
* Saves a mail subject for selected month
* @param date
* @param subject
*/
public saveMailSubject = async (
date: Date,
subject: string,
): Promise<void> => {
try {
await axios.put(
{
month: date.getMonth() + 1,
year: date.getFullYear(),
subject: subject,
},
toast.success('Objet de la newsletter enregistré !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
} else {
"Erreur lors de l’enregistrement de l'objet de la newsletter"
)
}
console.error(e)
}
}
/**
* Gets the mail subject for selected month
* @param date
*/
public getSingleMailSubject = async (
date: Date,
): Promise<IMailSubject | null> => {
try {
const { data } = await axios.get(
`/api/animator/mailSubject/${date.getFullYear()}/${
date.getMonth() + 1
}`,
console.error('error', e)
return null
}
}
/**
* Deletes the mail subject for selected month
* @param date
*/
public deleteMailSubject = async (
date: Date,
): Promise<void> => {
try {
await axios.delete(
`/api/animator/mailSubject/${date.getFullYear()}/${
date.getMonth() + 1
}`,
toast.success('Objet de la newsletter supprimé !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error("Erreur lors de la suppression de l'objet de la newsletter")
* Creates a monthlyInfo for selected month
public saveMonthlyInfo = async (
month: date.getMonth() + 1,
toast.success('Information du mois enregistrée !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error('Erreur lors de l’enregistrement des informations du mois')
* Gets the information for selected month
public getSingleMonthlyInfo = async (
): Promise<IMonthlyInfo | null> => {
`/api/animator/monthlyInfo/${date.getFullYear()}/${
date.getMonth() + 1
}`,
return data as IMonthlyInfo
console.error('error', e)
* Deletes a Monthly Info for selected month
public deleteMonthlyInfo = async (
): Promise<void> => {
try {
`/api/animator/monthlyInfo/${date.getFullYear()}/${
date.getMonth() + 1
}`,
toast.success('Informations du mois supprimées !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error('Erreur lors de la suppression des informations du mois')
console.error(e)
}
}
/**
* Creates a monthlyNews for selected month
* @param date
* @param title
* @param content
*/
public saveMonthlyNews = async (
date: Date,
title: string,
content: string,
): Promise<void> => {
try {
await axios.put(
month: date.getMonth() + 1,
year: date.getFullYear(),
title: title,
content: content,
},
toast.success('Nouveautés du mois enregistrés !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error('Erreur lors de l’enregistrement des nouveautés du mois')
console.error(e)
}
}
/**
* Gets a news title and content for selected month
*/
public getSingleMonthlyNews = async (
): Promise<IMonthlyNews | null> => {
`/api/animator/monthlyNews/${date.getFullYear()}/${
date.getMonth() + 1
}`,
return data as IMonthlyNews
console.error('error', e)
/**
* Deletes a Monthly News for selected month
*/
public deleteMonthlyNews = async (
): Promise<void> => {
try {
`/api/animator/monthlyNews/${date.getFullYear()}/${
date.getMonth() + 1
}`,
toast.success('Nouveautés du mois supprimées !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error('Erreur lors de la suppression des nouveautés du mois')
console.error(e)
}
}
/**
* Creates a poll with question and link for selected month
* @param date
* @param question
* @param link
*/
public savePoll = async (
month: date.getMonth() + 1,
year: date.getFullYear(),
link: link,
question: question,
},
toast.success('Sondage enregistré !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error('Erreur lors de l’enregistrement du sondage')
* Gets a poll with question and link for selected month
public getSinglePoll = async (
): Promise<IPoll | null> => {
const { data } = await axios.get(
`/api/animator/poll/${date.getFullYear()}/${date.getMonth() + 1}`,
console.error('error', e)
return null
* Deletes a poll for selected month
public deletePoll = async (
date: Date,
axiosHeaders: AxiosRequestConfig
): Promise<void> => {
`/api/animator/poll/${date.getFullYear()}/${date.getMonth() + 1}`,
toast.success('Sondage supprimé !')
toast.error("Accès refusé : vous n'avez pas les droits nécessaires")
toast.error('Erreur lors de la suppression du sondage')