Skip to content

Commit

Permalink
video
Browse files Browse the repository at this point in the history
  • Loading branch information
EmmanuelDemey committed Feb 6, 2025
1 parent 98dafd6 commit 531ee55
Show file tree
Hide file tree
Showing 19 changed files with 8,368 additions and 3,852 deletions.
6,772 changes: 4,415 additions & 2,357 deletions functions/package-lock.json

Large diffs are not rendered by default.

10 changes: 6 additions & 4 deletions functions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
"lint": "eslint --ext .js,.ts .",
"build": "tsc",
"build:watch": "tsc --watch",
"serve": "npm run build && firebase emulators:start --only functions",
"serve": "npm run build && firebase emulators:start --only functions -c ../firebase.devfest.json",
"shell": "npm run build && firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log",
"test": "jest"
},
"engines": {
"node": "16"
"node": "22"
},
"main": "lib/index.js",
"dependencies": {
Expand All @@ -26,15 +26,17 @@
"generate-password": "1.7.1",
"jest": "^29.7.0",
"mailgun.js": "^10.2.4",
"markdown-pdf": "8.1.1",
"node-mailjet": "3.3.1",
"markdown-pdf": "11.0.0",
"marked": "^4.2.12",
"md-to-pdf": "^5.2.4",
"sharp": "^0.32.6"
},
"devDependencies": {
"@firebase/rules-unit-testing": "^3.0.1",
"@types/ejs": "^3.1.5",
"@types/jest": "^29.5.8",
"@types/markdown-pdf": "^9.0.5",
"@types/marked": "^4.3.0",
"firebase-functions-test": "^3.1.0",
"ts-jest": "^29.1.1",
"typescript": "^4.9.0"
Expand Down
23 changes: 19 additions & 4 deletions functions/src/cms4devfest.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
import { Timestamp } from '@google-cloud/firestore';
import axios from 'axios';
import * as admin from 'firebase-admin';
import * as functions from 'firebase-functions';
import { writeFileSync } from 'fs';
///import * as markdownToPDf from 'markdown-pdf';
import * as os from 'os';

import relanceConventionSignee from './emails/template/relanceConventionSignee';
import relanceInformationsComplementaires from './emails/template/relanceInformationsComplementaires';
import relancePaiement from './emails/template/relancePaiement';
import type { Company, Configuration, EmailContent, WorkflowStatus } from './model';
import { StatusEnum, onDocumentChange } from './utils/document-change';
import { sendEmail, sendEmailToAllContacts } from './utils/mail';
import { sendEmailToAllContacts } from './utils/mail';
import { sendNewPartnerToOrganizationTeam, sendWelcomeEmail } from './v3/domain/email';
import { getConfiguration } from './v3/infrastructure/getConfiguration';

Expand Down Expand Up @@ -46,9 +50,20 @@ export const getAllPublicSponsors = functions.https.onRequest(async (req, resp)
});

export const testEmail = functions.https.onRequest(async (req, resp) => {
const configuration = await getConfiguration(firestore);
await sendEmail(['[email protected]'], 'subject', 'body', configuration);
resp.send(1);
const content = '# Title 23';
const path = os.tmpdir() + '/test2.pdf';
axios
.post('https://hook.eu2.make.com/bng7a8nbgg7093u3oofkwmm2t1hl9omd', content, {
responseType: 'arraybuffer',
headers: {
'Content-Type': 'text/plain'
}
})
.then((body) => {
writeFileSync(path, body.data);
resp.send(path);
})
.catch((err: string) => console.log(err));
});

const relance = (emailFactory: (partner: Company, configuration: Configuration) => EmailContent, partners: Company[], configuration: Configuration) => {
Expand Down
4 changes: 1 addition & 3 deletions functions/src/conference4hall/firestore-dao.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { Timestamp } from '@google-cloud/firestore';

import { Company } from '../model';

export async function update(firestore: FirebaseFirestore.Firestore, c4hId: string, companyId: string, event: Company, address: any, media: any) {
export async function update(firestore: FirebaseFirestore.Firestore, c4hId: string, companyId: string, event: any, address: any, media: any) {
const docRef = firestore.collection('conferences4hall').doc(c4hId).collection('companies').doc(companyId);
const hasTwitter = event.twitterAccount == '' || event.twitterAccount == undefined;
const hasLinkedin = event.linkedinAccount == '' || event.linkedinAccount == undefined;
Expand Down
27 changes: 19 additions & 8 deletions functions/src/generator/lib/generator.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
import axios from 'axios';
import * as ejs from 'ejs';
import * as markdownToPDf from 'markdown-pdf';
import { writeFileSync } from 'fs';
import * as os from 'os';

import { Company, Configuration, SponsoringOption, SponsorshipConfiguration } from '../../model';

const generatePdf = (content: string) => {
return axios
.post('https://hook.eu2.make.com/bng7a8nbgg7093u3oofkwmm2t1hl9omd', content, {
responseType: 'arraybuffer',
headers: {
'Content-Type': 'text/plain'
}
})
.then((body) => body.data)
.catch((err: string) => console.log(err));
};

function getSponsoringFees(sponsoringConfiguration: SponsorshipConfiguration): [string, number, number] {
if (!sponsoringConfiguration) {
return ['', 0, 0];
Expand Down Expand Up @@ -91,13 +104,11 @@ function generateFile(company: Company, fileName: string, fileModule: { default:
console.log(data);

const str = ejs.render(file, data);
markdownToPDf({
paperBorder: '3cm'
})
.from.string(str)
.to(os.tmpdir() + '/' + fileName, () => {
resolve(fileName);
});
generatePdf(str)
.then((pdf) => {
return writeFileSync(os.tmpdir() + '/' + fileName, pdf);
})
.then(() => resolve(fileName));
} catch (e) {
console.log('Generator:', 'error when generating ' + fileName, e);

Expand Down
37 changes: 22 additions & 15 deletions functions/src/generator/lib/template_devfest/convention_fr.ts

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion functions/src/utils/document-change.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ export async function onDocumentChange(firestore: FirebaseFirestore.Firestore, b
(beforeStatus.communicated !== status.communicated && status.communicated === StatusEnum.DONE) ||
(status.communicated === StatusEnum.DONE && before.publicationDate !== after.publicationDate)
) {
if (!!after.publicationDate && (after.publicationDate as any) !== '') {
if (!!after.publicationDate && (after.publicationDate as unknown as string) !== '') {
const emailTemplate = CommunicationScheduledFactory(Intl.DateTimeFormat('fr').format(new Date(after.publicationDate)), configuration);
sendEmailToAllContacts(after, emailTemplate, configuration);

Expand Down
4 changes: 0 additions & 4 deletions functions/src/utils/mail.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,6 @@ export function getFrom(mail: Email): {
}

export function sendEmailToAllContacts(company: Company, emailFactory: EmailContent, configuration: Configuration) {
if (!configuration.mail.enabled) {
return;
}

const emails = Array.isArray(company.email) ? company.email : [company.email];

return sendEmail(
Expand Down
2 changes: 1 addition & 1 deletion functions/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"noUnusedLocals": true,
"outDir": "lib",
"sourceMap": true,
"strict": true,
"strict": false,
"target": "es2017"
},
"compileOnSave": true,
Expand Down
Loading

0 comments on commit 531ee55

Please sign in to comment.