|
| 1 | +const {v4: uuidv4} = require('uuid'); |
| 2 | +const images = require('./constants/images.json'); |
| 3 | +const templates = require('./constants/templates.json'); |
| 4 | +const projects = require('./constants/projects.json'); |
| 5 | +const users = require('./constants/users.json'); |
| 6 | +const userGroups = require('./constants/user_groups.json'); |
| 7 | + |
| 8 | +const addBaseColumns = (records) => { |
| 9 | + return records.map((record) => { |
| 10 | + return { |
| 11 | + ...record, |
| 12 | + ident: uuidv4(), |
| 13 | + created_at: new Date(), |
| 14 | + updated_at: new Date(), |
| 15 | + }; |
| 16 | + }); |
| 17 | +}; |
| 18 | + |
| 19 | +module.exports = { |
| 20 | + async up(queryInterface, Sequelize) { |
| 21 | + const templatesData = templates.map((template) => { |
| 22 | + template.sections = JSON.stringify(template.sections); |
| 23 | + return template; |
| 24 | + }); |
| 25 | + await queryInterface.bulkInsert('images', addBaseColumns(images), {}); |
| 26 | + await queryInterface.bulkInsert('templates', addBaseColumns(templatesData), {}); |
| 27 | + await queryInterface.bulkInsert('projects', addBaseColumns(projects), {}); |
| 28 | + await queryInterface.bulkInsert('users', addBaseColumns(users), {}); |
| 29 | + await queryInterface.bulkInsert('user_groups', addBaseColumns(userGroups), {}); |
| 30 | + |
| 31 | + // give admin permission to user pori_admin |
| 32 | + const usersData = await queryInterface.sequelize.query( |
| 33 | + 'SELECT id, username FROM users;', |
| 34 | + {type: Sequelize.QueryTypes.SELECT}, |
| 35 | + ); |
| 36 | + const poriAdmin = usersData.find((u) => {return u.username === 'pori_admin';}); |
| 37 | + const groupsData = await queryInterface.sequelize.query( |
| 38 | + 'SELECT id, name FROM user_groups;', |
| 39 | + {type: Sequelize.QueryTypes.SELECT}, |
| 40 | + ); |
| 41 | + const adminGroup = groupsData.find((g) => {return g.name === 'admin';}); |
| 42 | + const userGroupData = [{ |
| 43 | + user_id: poriAdmin.id, |
| 44 | + group_id: adminGroup.id, |
| 45 | + created_at: new Date(), |
| 46 | + updated_at: new Date(), |
| 47 | + }]; |
| 48 | + |
| 49 | + await queryInterface.bulkInsert('user_group_members', userGroupData); |
| 50 | + await queryInterface.bulkInsert('user_metadata', addBaseColumns([{user_id: poriAdmin.id}])); |
| 51 | + }, |
| 52 | + |
| 53 | + async down(queryInterface) { |
| 54 | + await queryInterface.bulkDelete('user_metadata', null, {}); |
| 55 | + await queryInterface.bulkDelete('user_group_members', null, {}); |
| 56 | + await queryInterface.bulkDelete('templates', null, {}); |
| 57 | + await queryInterface.bulkDelete('images', null, {}); |
| 58 | + await queryInterface.bulkDelete('projects', null, {}); |
| 59 | + await queryInterface.bulkDelete('users', null, {}); |
| 60 | + await queryInterface.bulkDelete('user_groups', null, {}); |
| 61 | + }, |
| 62 | +}; |
0 commit comments