From d230fa9472403102f7d0c5a30eae09a6e879f01c Mon Sep 17 00:00:00 2001 From: David Steinacher <dsteinach@ethz.ch> Date: Sat, 16 Nov 2024 13:02:19 +0100 Subject: [PATCH] add api seeding --- test_mongoinit.js | 253 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 test_mongoinit.js diff --git a/test_mongoinit.js b/test_mongoinit.js new file mode 100644 index 00000000..ca4e3dcb --- /dev/null +++ b/test_mongoinit.js @@ -0,0 +1,253 @@ +db.createUser( + { + user: "amivapi", + pwd: "amivapi", + roles: [ + { + role: "readWrite", + db: "amivapi" + } + ] + } +); + +db.getSiblingDB('test_amivapi').createUser( + { + user: "test_user", + pwd: "test_pw", + roles: [ + { + role: "readWrite", + db: "test_amivapi" + } + ] + } +); + +let userId = db.users.insertOne({ + nethz: 'admin', + password: '$pbkdf2-sha256$5$OqfUmtNaq5UyRohxDuGckw$9H/UL5N5dA7JmUq7ohRPfmJ84OUnpRKjTgsMeuFilXM', + email: "admin@example.com", + membership: "regular", + gender: "female", + firstname: "ad", + lastname: "min", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +let groupId = db.groups.insertOne({ + name: 'admin', + permissions: { + apikeys: "readwrite", + users: "readwrite", + sessions: "readwrite", + events: "readwrite", + eventsignups: "readwrite", + groups: "readwrite", + groupmemberships: "readwrite", + joboffers: "readwrite", + beverages: "read", + studydocuments: "readwrite", + oauthclients: "readwrite", + }, + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +db.groupmemberships.insertOne({ + user: userId, + group: groupId, + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}) + +db.oauthclients.insertOne({ + client_id: "LocalTool", + redirect_uri: "http://localhost", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}); + +let manyUserId = [] + +for(let i = 0; i < 10; i++){ + manyUserId[i] = db.users.insertOne({ + nethz: 'test' + i.toString(), + password: '$pbkdf2-sha256$1000$MSbEOKf0njOGkHLOOad0rg$j4GZopKcBA0TyqWZWBCPxDoVOeHOH8RtMlP9UgRu1uY', + email: "hans.muster@ethz.ch", + membership: "regular", + depatement: "itet", + gender: "male", + firstname: "Hans" + i.toString(), + lastname: "Muster", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", + }).insertedId; +} + +let manyGroupId = [] + +manyGroupId[0] = db.groups.insertOne({ + name: 'test0', + permissions: { + apikeys: "read", + users: "readwrite", + sessions: "readwrite", + events: "readwrite", + eventsignups: "readwrite", + groups: "readwrite", + groupmemberships: "readwrite", + joboffers: "readwrite", + beverages: "read", + studydocuments: "readwrite", + oauthclients: "read", + }, + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +manyGroupId[1] = db.groups.insertOne({ + name: 'test1', + permissions: { + apikeys: "read", + users: "read", + sessions: "readwrite", + events: "read", + eventsignups: "read", + groups: "readwrite", + groupmemberships: "readwrite", + joboffers: "readwrite", + beverages: "read", + studydocuments: "readwrite", + oauthclients: "read", + }, + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +manyGroupId[2] = db.groups.insertOne({ + name: 'test2', + permissions: { + apikeys: "read", + users: "read", + sessions: "read", + events: "read", + eventsignups: "read", + groups: "read", + groupmemberships: "read", + joboffers: "readwrite", + beverages: "read", + studydocuments: "readwrite", + oauthclients: "read", + }, + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +for(let i = 0; i < 10; i++){ + db.groupmemberships.insertOne({ + user: manyUserId[i], + group: manyGroupId[i%3], + _etag: "27f987fd9dd45d491e5aea3e27730israndom", + }) +} + +db.groupmemberships.insertOne({ + user: manyUserId[1], + group: manyGroupId[0], + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}) +db.groupmemberships.insertOne({ + user: manyUserId[2], + group: manyGroupId[0], + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}) + +let manyEventsId = [] + +manyEventsId[0] = db.events.insertOne({ + allwo_email_signup: true, + chatchprase_de: "Chatchprase Deutsch", + chatchprase_en: "Chatchprase English", + description_de: "Das ist eine Beschreibung", + description_en: "This is a description", + location: "CAB E5", + price: 1000, + show_announce: true, + spots: 0, + time_advertising_end: "2025-04-10T15:16:11Z", + time_advertising_start: "2025-03-09T15:16:11Z", + title_de: "Event 0", + title_en: "event 0", + type: "internal", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +manyEventsId[1] = db.events.insertOne({ + allwo_email_signup: true, + chatchprase_de: "Chatchprase Deutsch", + chatchprase_en: "Chatchprase English", + description_de: "Das ist eine Beschreibung", + description_en: "This is a description", + location: "CAB E5", + price: 500, + show_announce: true, + spots: 10, + time_advertising_end: "2026-04-10T15:16:11Z", + time_advertising_start: "2026-03-09T15:16:11Z", + title_de: "Event 1", + title_en: "event 1", + type: "internal", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +manyEventsId[2] = db.events.insertOne({ + allwo_email_signup: true, + chatchprase_de: "Chatchprase Deutsch", + chatchprase_en: "Chatchprase English", + description_de: "Das ist eine Beschreibung", + description_en: "This is a description", + location: "CAB E5", + price: null, + show_announce: true, + spots: 100, + time_advertising_end: "2026-04-10T15:16:11Z", + time_advertising_start: "2024-03-09T15:16:11Z", + title_de: "Event 2", + title_en: "event 2", + type: "internal", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +for(let i = 0; i < 10; i++){ + db.eventsignups.insertOne({ + user: manyUserId[i], + event: manyGroupId[i%3], + _etag: "27f987fd9dd45d491e5aea3e27730israndom", + }) +} + +let blacklistUserId = db.users.insertOne({ + nethz: 'blackl', + password: '$pbkdf2-sha256$1000$MSbEOKf0njOGkHLOOad0rg$j4GZopKcBA0TyqWZWBCPxDoVOeHOH8RtMlP9UgRu1uY', + email: "black.listuser@ethz.ch", + membership: "regular", + depatement: "itet", + gender: "male", + firstname: "User", + lastname: "Blacklist", + _etag: "27f987fd9dd45d491e5aea3e27730israndom", +}).insertedId; + +db.blacklist.insertOne({ + user: blacklistUserId, + end_time: null, + price: 500, + reason: "This user is the dummy for the blacklist", + start_time: "2024-10-11T00:00:00Z", +}) + +db.joboffers.insertOne({ + company: "Dummy AG", + description_de: "Die Dummy AG", + description_en: "The Dummy AG", + logo: "dummy", + pdf: null, + show_website: false, + time_end: "2028-10-10T12:00:00Z", + title_de: "Job in der Dummy AG", + title_en: "Job in the Dummy AG", +}) -- GitLab