Skip to content

Commit 83fd3cb

Browse files
committed
fix(variations): emails for datasets
1 parent 4be7b76 commit 83fd3cb

File tree

4 files changed

+60
-21
lines changed

4 files changed

+60
-21
lines changed

client/src/pages/bso-local-variations/actions/edit-variations.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
import { postHeaders } from "../../../config/api"
2+
import { VariationsTypes } from "../types"
23

3-
export default async function editVariations(api: string, ids: Array<string>, inputs: Record<string, unknown>) {
4+
export default async function editVariations(
5+
api: VariationsTypes,
6+
ids: Array<string>,
7+
inputs: Record<string, unknown>
8+
) {
49
const singleId = ids.length === 1 ? ids[0] : null
5-
const url = !!singleId ? `/api/bso-local-variations/${api}/${singleId}` : `/api/bso-local-variations/${api}`
10+
const url = !!singleId
11+
? `/api/bso-local-variations/${api}/${singleId}`
12+
: `/api/bso-local-variations/${api}`
613
const data = !!singleId ? inputs : { data: inputs, ids: ids }
714

815
await fetch(url, {

client/src/pages/bso-local-variations/actions/send-email.ts

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,22 @@
11
import { toast } from "react-toastify"
2-
import { Variation } from "../types"
2+
import { Variation, VariationsTypes } from "../types"
33
import editVariations from "./edit-variations"
44
import { notificationGetTemplate } from "../config/notifications"
55

66
const messageTemplate = (variation: Variation) =>
7-
`<ul><li>Nom de la structure: ${variation.structure.name}</li><li>Identifiant de la structure: ${
7+
`<ul><li>Nom de la structure: ${
8+
variation.structure.name
9+
}</li><li>Identifiant de la structure: ${
810
variation.structure?.id || "Non renseigné"
9-
}</li><li>Date de la demande: ${new Date(variation.created_at).toLocaleDateString()}</li></ul>`
11+
}</li><li>Date de la demande: ${new Date(
12+
variation.created_at
13+
).toLocaleDateString()}</li></ul>`
1014

11-
async function sendEmail(variation: Variation, response: string) {
15+
async function sendEmail(
16+
api: VariationsTypes,
17+
variation: Variation,
18+
response: string
19+
) {
1220
const url = `/api/send-email`
1321
const selectedProfile = localStorage.getItem("selectedProfile")
1422
const formattedResponse = response.replace(/\n/g, "<br/>")
@@ -20,7 +28,7 @@ async function sendEmail(variation: Variation, response: string) {
2028
subject: `Réponse à votre demande de déclinaison locale, référence bso-${variation.id}`,
2129
userResponse: formattedResponse,
2230
message: messageTemplate(variation),
23-
collectionName: "bso_local_variations_publications",
31+
collectionName: `bso_local_variations_${api}`,
2432
selectedProfile,
2533
}
2634

@@ -32,34 +40,44 @@ async function sendEmail(variation: Variation, response: string) {
3240
body: JSON.stringify(emailPayload),
3341
})
3442
.then((response) => {
35-
if (!response.ok) throw new Error(`Error while sending email: ${response.status}`)
43+
if (!response.ok)
44+
throw new Error(`Error while sending email: ${response.status}`)
3645
})
3746
.catch((error) => {
3847
throw error
3948
})
4049
}
4150

4251
export default async function sendEmails(
43-
api: string,
52+
api: VariationsTypes,
4453
variations: Array<Variation>,
4554
notification: string,
4655
response: string,
4756
useTemplate?: boolean,
4857
getCommentsName?: (id: string) => string
4958
) {
5059
// Set status as treated if final notification sent
51-
const inputs = { tags: { notification: notification }, status: notification === "done" ? "treated" : "ongoing" }
60+
const inputs = {
61+
tags: { notification: notification },
62+
status: notification === "done" ? "treated" : "ongoing",
63+
}
5264

5365
// If single variation and notification is custom, set correct status (should only happen from email-box)
5466
if (variations.length === 1 && notification === "custom")
55-
inputs.status = variations[0].tags?.notification === "done" ? "treated" : "ongoing"
67+
inputs.status =
68+
variations[0].tags?.notification === "done" ? "treated" : "ongoing"
5669

5770
Promise.all(
5871
variations.map((variation) =>
5972
sendEmail(
73+
api,
6074
variation,
6175
useTemplate
62-
? notificationGetTemplate(notification, variation.structure?.id, getCommentsName(variation.structure?.id))
76+
? notificationGetTemplate(
77+
notification,
78+
variation.structure?.id,
79+
getCommentsName(variation.structure?.id)
80+
)
6381
: response
6482
)
6583
)
@@ -73,7 +91,9 @@ export default async function sendEmails(
7391
)
7492
}
7593
toast.success(
76-
variations?.length > 1 ? "Les emails ont été envoyés avec succès !" : "L'email à été envoyé avec succès !"
94+
variations?.length > 1
95+
? "Les emails ont été envoyés avec succès !"
96+
: "L'email à été envoyé avec succès !"
7797
)
7898
})
7999
.catch((error) => {

client/src/pages/bso-local-variations/actions/update-index.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import { toast } from "react-toastify"
2-
import { Variation } from "../types"
2+
import { Variation, VariationsTypes } from "../types"
33
import editVariations from "./edit-variations"
44

5-
export default async function updateIndex(api: string, variations: Array<Variation>, data: Record<string, unknown>) {
5+
export default async function updateIndex(
6+
api: VariationsTypes,
7+
variations: Array<Variation>,
8+
data: Record<string, unknown>
9+
) {
610
const indexName = data.index_name
711
const url = `/api/bso-tasks`
812

@@ -22,7 +26,9 @@ export default async function updateIndex(api: string, variations: Array<Variati
2226
variations.map((variation) => variation.id),
2327
{ tags: { index: data.id } }
2428
)
25-
toast.success(`L'index ${indexName} a été lancé avec succès ! (id: ${data.id})`)
29+
toast.success(
30+
`L'index ${indexName} a été lancé avec succès ! (id: ${data.id})`
31+
)
2632
})
2733
.catch((error) => {
2834
console.error("updateIndex error:", error.message)

client/src/pages/bso-local-variations/actions/upload-files.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { toast } from "react-toastify"
2-
import { Variation } from "../types"
2+
import { Variation, VariationsTypes } from "../types"
33
import editVariations from "./edit-variations"
44
import { getContainer } from "../config/containers"
55

6-
async function uploadFile(api: string, variation: Variation) {
6+
async function uploadFile(api: VariationsTypes, variation: Variation) {
77
const container = getContainer(api)
88
if (!container) {
99
throw `uploadFile: Container not found for variations api ${api}`
@@ -26,14 +26,18 @@ async function uploadFile(api: string, variation: Variation) {
2626
body: JSON.stringify(data),
2727
})
2828
.then((response) => {
29-
if (!response.ok) throw new Error(`Error while uploading file for id ${variation.id}`)
29+
if (!response.ok)
30+
throw new Error(`Error while uploading file for id ${variation.id}`)
3031
})
3132
.catch((error) => {
3233
throw error
3334
})
3435
}
3536

36-
export default async function uploadFiles(api: string, variations: Array<Variation>) {
37+
export default async function uploadFiles(
38+
api: VariationsTypes,
39+
variations: Array<Variation>
40+
) {
3741
const inputs = { tags: { file: "uploaded" }, status: "ongoing" }
3842

3943
Promise.all(variations.map((variation) => uploadFile(api, variation)))
@@ -51,6 +55,8 @@ export default async function uploadFiles(api: string, variations: Array<Variati
5155
})
5256
.catch((error) => {
5357
console.error("uploadFiles error:", error.message)
54-
toast.error("Une erreur est survenue lors du chargement des fichiers sur OVH.")
58+
toast.error(
59+
"Une erreur est survenue lors du chargement des fichiers sur OVH."
60+
)
5561
})
5662
}

0 commit comments

Comments
 (0)