-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdocGen.ts
54 lines (46 loc) · 1.21 KB
/
docGen.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import type {
Debugger,
EvaluateCollectionType,
UserDataCollectionType
} from '../lib'
import {
ClubRecord,
DMap,
DocumentTemplate,
EvaluationDocument,
FirestoreCollection,
Mutators
} from '../lib'
export const docGenSnippet = async (debug: Debugger) => {
const eCollection = new FirestoreCollection<EvaluateCollectionType>(
'evaluate'
)
const eData = await eCollection.readFromCacheNoRef(true)
if (!eData) return
const uData = await new FirestoreCollection<UserDataCollectionType>('data')
.setDefaultMutator(
Mutators.SpecificKeyFieldKVMutator((doc) => doc.get('student_id'))
)
.readFromCache(true)
if (!uData) return
const eMap = new ClubRecord(eData.getRecord()).transformToMainClubs()
const template = new DocumentTemplate('assets/eTemplate.html')
await eMap.iterate(async (key, value) => {
debug.info(`working on ${key}`)
const clubEMap = new DMap(value)
const grouped = clubEMap.groupBy((v) => v.action)
const doc = new EvaluationDocument(
key,
{
semester: '2',
year: '2566'
},
{
all: clubEMap,
...grouped.getRecord()
},
uData
)
await doc.generate(template, `${key}`)
})
}