-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwiki.jardins-thematiques.js
49 lines (47 loc) · 1.77 KB
/
wiki.jardins-thematiques.js
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
const urlJoin = require("url-join");
const QueueMixin = require("moleculer-bull");
const { YesWikiImporterMixin } = require('@semapps/importer');
const SpaceManagerMixin = require('./mixins/space-manager');
const CONFIG = require('../config/config');
const { getSlugByUrl } = require("./utils/utils");
module.exports = {
name: 'importer.wiki.jardins-thematiques',
mixins: [SpaceManagerMixin, YesWikiImporterMixin, CONFIG.QUEUE_SERVICE_URL ? QueueMixin(CONFIG.QUEUE_SERVICE_URL) : {}],
settings: {
source: {
yeswiki: {
baseUrl: 'https://wiki.jardiniersdunous.org',
oldApi: true,
formId: 46
},
fieldsMapping: {
slug: data => getSlugByUrl(data.bf_intranet),
}
},
dest: {
containerUri: urlJoin(CONFIG.HOME_URL, 'circles'),
predicatesToKeep: ['pair:documentedBy', 'pair:concernedBy']
},
cronJob: CONFIG.QUEUE_SERVICE_URL ? {
time: '0 0 4 * * *', // Every night at 4am
timeZone: 'Europe/Paris'
} : undefined
},
methods: {
async transform(data) {
// For now, only process spaces with a link to humhub
const humhubSpace = this.getSpaceByUrl(data.bf_intranet);
if (!humhubSpace) return false;
return({
type: 'og:Circle',
'pair:label': humhubSpace.name,
'pair:comment': humhubSpace.description,
'pair:homePage': humhubSpace.url,
'og:purpose': data.bf_raisondetre ? data.bf_raisondetre.trim() : undefined,
'pair:partOf': urlJoin(CONFIG.HOME_URL, 'circles', 'jardins-thematiques'),
'pair:affiliates': humhubSpace.members ? humhubSpace.members.map(member => urlJoin(CONFIG.HOME_URL, 'users', getSlugByUrl(member.user.url))) : undefined,
// 'semapps:humhubId': humhubSpace.contentcontainer_id,
})
},
}
};