diff --git a/src/components/Notifications/index.tsx b/src/components/Notifications/index.tsx
index 417b0ee..1c08df9 100644
--- a/src/components/Notifications/index.tsx
+++ b/src/components/Notifications/index.tsx
@@ -192,7 +192,7 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
const isChecked = event.target.value === "oui"
if (!isChecked) {
- setNotifMessage("")
+ setNotifMessage("Réponse mémorisée.")
setAcceptsNotifs("non")
dispatch(
fetchVolunteerNotifsSet(jwtToken, 0, {
@@ -326,10 +326,15 @@ Tu n'y es absolument pas obligé(e) ! C'est juste plus pratique.
diff --git a/src/server/gsheets/accessors.ts b/src/server/gsheets/accessors.ts
index 972c78d..d885f6c 100644
--- a/src/server/gsheets/accessors.ts
+++ b/src/server/gsheets/accessors.ts
@@ -213,11 +213,11 @@ export class Sheet<
async dbFirstLoad(): Promise {
if (!(await hasGSheetsAccess())) {
await this.loadLocalDb()
+ } else if (this.toRunAfterLoad && __DEV__) {
+ this.toRunAfterLoad.push(() => this.saveLocalDb())
}
- this.dbLoad()
- if (__DEV__ && (await hasGSheetsAccess())) {
- this.saveLocalDb()
- }
+
+ await this.dbLoad()
}
private async dbSaveAsync(): Promise {
diff --git a/src/server/gsheets/localDb.ts b/src/server/gsheets/localDb.ts
index 93a2c25..a2e43ff 100644
--- a/src/server/gsheets/localDb.ts
+++ b/src/server/gsheets/localDb.ts
@@ -38,11 +38,11 @@ export async function saveLocalDb(
states[name] = state
types[name] = type
const toSave = { states, types }
- const jsonDB = __DEV__ ? JSON.stringify(toSave, null, 2) : JSON.stringify(toSave)
+ const jsonDB = __DEV__ ? JSON.stringify(toSave, null, 4) : JSON.stringify(toSave)
await fs.writeFile(DB_PATH, jsonDB)
toSave.states = anonimizedDb(toSave.states)
- const jsonAnonimizedDB = __DEV__ ? JSON.stringify(toSave, null, 2) : JSON.stringify(toSave)
+ const jsonAnonimizedDB = __DEV__ ? JSON.stringify(toSave, null, 4) : JSON.stringify(toSave)
await fs.writeFile(ANONYMIZED_DB_PATH, jsonAnonimizedDB)
}
@@ -253,47 +253,73 @@ function anonimizedDb(_s: States): States {
const s = _.cloneDeep(_s)
if (s.Volunteers) {
;(s.Volunteers as Volunteer[]).forEach((v) => {
- v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
- v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
- const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
- v.email = `${v.firstname}.${v.lastname}.${v.id}@${fakeEmailDomain}`.toLowerCase()
- const mobileStart = v.mobile.match(/^\+?[0-9][0-9]/)
- const mobileEnd = [1, 2, 3, 4]
- .map((n) => `${numberToRand(v.id + n) % 10}${numberToRand(v.id + n + 10) % 10}`)
- .join(" ")
- v.mobile = v.mobile ? `${(mobileStart || ["06"])[0]} ${mobileEnd}` : ""
- v.photo = `${v.firstname}_${v.lastname}.jpg`.toLowerCase()
- v.password1 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
- v.password2 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
- v.acceptsNotifs = ""
- if (v.id % 13 === 0) {
- v.acceptsNotifs = "oui"
- } else if (v.id % 251 === 0) {
- v.acceptsNotifs = "non"
+ anonimizedNameEmailMobile(v)
+ if (!idADev(v)) {
+ v.photo = `${v.firstname}_${v.lastname}.jpg`.toLowerCase()
}
- v.pushNotifSubscription =
- v.id % 13 === 0
- ? '{"endpoint":"https://fcm.googleapis.com/fcm/send/f-EAfakedfakedU:APA91fakedfakedzIk-DEglfakedfaked9ugI--ljtfakedfakedfakedfakedfakedfakedP3t-ggU7Afakedfakedfakedkai","expirationTime":null,"keys":{"p256dh":"BEZOJSfakedfakedfakedfakedfakedfakedfakedfakedfakedfakedgYs-cafakedw","auth":"GlMfakedfakedFRg"}}'
- : ""
+ anonimizedPasswords(v)
+ anonimizedNotifs(v)
})
}
if (s.PreVolunteers) {
;(s.PreVolunteers as PreVolunteer[]).forEach((v) => {
- v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
- v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
- const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
- v.email = `${v.firstname}.${v.lastname}.${v.id}@${fakeEmailDomain}`.toLowerCase()
- const mobileStart = v.mobile.match(/^\+?[0-9][0-9]/)
- const mobileEnd = [1, 2, 3, 4]
- .map((n) => `${numberToRand(v.id + n) % 10}${numberToRand(v.id + n + 10) % 10}`)
- .join(" ")
- v.mobile = v.mobile ? `${(mobileStart || ["06"])[0]} ${mobileEnd}` : ""
+ anonimizedNameEmailMobile(v)
v.comment = v.id % 3 === 0 ? "Bonjour, j'adore l'initiative!" : ""
})
}
return s
}
+function idADev(v: Volunteer | PreVolunteer): boolean {
+ const devList = ["Pierre Scelles", "Manuel Emeriau", "Timothé Caillaud"]
+ return devList.includes(`${v.firstname} ${v.lastname}`)
+}
+
+function anonimizedNameEmailMobile(v: Volunteer | PreVolunteer): void {
+ if (idADev(v)) {
+ return
+ }
+
+ v.firstname = fakeFirstnames[numberToRand(v.id) % fakeFirstnames.length]
+ v.lastname = fakeLastnames[numberToRand(v.id) % fakeLastnames.length]
+
+ const fakeEmailDomain = fakeEmailDomains[numberToRand(v.id) % fakeEmailDomains.length]
+ v.email = `${v.firstname}.${v.lastname}.${v.id}@${fakeEmailDomain}`.toLowerCase()
+
+ const mobileStart = v.mobile.match(/^\+?[0-9][0-9]/)
+ const mobileEnd = [1, 2, 3, 4]
+ .map((n) => `${numberToRand(v.id + n) % 10}${numberToRand(v.id + n + 10) % 10}`)
+ .join(" ")
+ v.mobile = v.mobile ? `${(mobileStart || ["06"])[0]} ${mobileEnd}` : ""
+}
+
+function anonimizedPasswords(v: Volunteer): void {
+ if (idADev(v)) {
+ v.password1 = "$2b$10$CMv7lEQKWM7XEJtumt0qsOw4dPANs6lT6dI2N27XmJP0Jm4rscmq."
+ return
+ }
+
+ v.password1 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
+ v.password2 = "$2y$1a$Kt/FAKEFAKEFAKEFAKEc6.FAKEFAKEFAKEFAKE//FAKEFAKEFAKEy"
+}
+
+function anonimizedNotifs(v: Volunteer): void {
+ if (idADev(v)) {
+ return
+ }
+
+ v.acceptsNotifs = ""
+ if (v.id % 13 === 0) {
+ v.acceptsNotifs = "oui"
+ } else if (v.id % 251 === 0) {
+ v.acceptsNotifs = "non"
+ }
+ v.pushNotifSubscription =
+ v.id % 13 === 0
+ ? '{"endpoint":"https://fcm.googleapis.com/fcm/send/f-EAfakedfakedU:APA91fakedfakedzIk-DEglfakedfaked9ugI--ljtfakedfakedfakedfakedfakedfakedP3t-ggU7Afakedfakedfakedkai","expirationTime":null,"keys":{"p256dh":"BEZOJSfakedfakedfakedfakedfakedfakedfakedfakedfakedfakedgYs-cafakedw","auth":"GlMfakedfakedFRg"}}'
+ : ""
+}
+
function numberToRand(n: number) {
return (1664525 * n + 1013904223) % 512
}