Skip to content

Commit a98e5b2

Browse files
committed
Refactor: utiliser refreshViewCascade pour les vues interdépendantes
refers to https://trello.com/c/8jz3Zzmv/2636 refers to https://trello.com/c/lzbVwxrI/2637 - Refactorise 30000051-01 : 64 lignes → 42 lignes - Simplifie la gestion de 6 vues SQL interdépendantes - Utilise une structure déclarative plus lisible"
1 parent 2ee5097 commit a98e5b2

1 file changed

Lines changed: 31 additions & 53 deletions

File tree

Lines changed: 31 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
const refreshViewCascade = require('./common/refreshViewCascade');
12
const createUserActualPermissions = require('./common/user_actual_permissions/10_reset');
23
const createUserPermissionsByOption = require('./common/user_permissions_by_option/03_reset');
34
const createFullUserPermissionsByUser = require('./common/full_user_permissions_by_user/01_initial_view');
@@ -6,58 +7,35 @@ const createUserPermissionsWithAttachments = require('./common/user_permissions_
67
const createOldUserPermissionsByRole = require('./common/full_user_permissions_by_role/01_initial_view');
78
const createNewUserPermissionsByRole = require('./common/full_user_permissions_by_role/02_fix_action_create');
89

9-
module.exports = {
10-
async up(queryInterface) {
11-
const transaction = await queryInterface.sequelize.transaction();
12-
13-
try {
14-
// on supprime toutes les vues de permission pour recréer full_user_permissions_by_role
15-
await queryInterface.sequelize.query('DROP VIEW user_actual_permissions', { transaction });
16-
await queryInterface.sequelize.query('DROP VIEW user_permissions_by_option', { transaction });
17-
await queryInterface.sequelize.query('DROP VIEW full_user_permissions_by_user', { transaction });
18-
await queryInterface.sequelize.query('DROP VIEW full_user_permissions_by_organization', { transaction });
19-
await queryInterface.sequelize.query('DROP VIEW user_permissions_with_attachments', { transaction });
20-
await queryInterface.sequelize.query('DROP VIEW full_user_permissions_by_role', { transaction });
21-
22-
// on recrée les vues une par une
23-
await queryInterface.sequelize.query(createNewUserPermissionsByRole, { transaction });
24-
await queryInterface.sequelize.query(createUserPermissionsWithAttachments, { transaction });
25-
await queryInterface.sequelize.query(createFullUserPermissionsByOrganization, { transaction });
26-
await queryInterface.sequelize.query(createFullUserPermissionsByUser, { transaction });
27-
await queryInterface.sequelize.query(createUserPermissionsByOption, { transaction });
28-
await queryInterface.sequelize.query(createUserActualPermissions, { transaction });
29-
30-
return transaction.commit();
31-
} catch (error) {
32-
await transaction.rollback();
33-
throw error;
34-
}
10+
module.exports = refreshViewCascade([
11+
{
12+
name: 'user_actual_permissions',
13+
oldView: createUserActualPermissions,
14+
newView: createUserActualPermissions,
3515
},
36-
37-
async down(queryInterface) {
38-
const transaction = await queryInterface.sequelize.transaction();
39-
40-
try {
41-
// on supprime toutes les vues de permission pour recréer full_user_permissions_by_role
42-
await queryInterface.sequelize.query('DROP VIEW user_actual_permissions', { transaction });
43-
await queryInterface.sequelize.query('DROP VIEW user_permissions_by_option', { transaction });
44-
await queryInterface.sequelize.query('DROP VIEW full_user_permissions_by_user', { transaction });
45-
await queryInterface.sequelize.query('DROP VIEW full_user_permissions_by_organization', { transaction });
46-
await queryInterface.sequelize.query('DROP VIEW user_permissions_with_attachments', { transaction });
47-
await queryInterface.sequelize.query('DROP VIEW full_user_permissions_by_role', { transaction });
48-
49-
// on recrée les vues une par une
50-
await queryInterface.sequelize.query(createOldUserPermissionsByRole, { transaction });
51-
await queryInterface.sequelize.query(createUserPermissionsWithAttachments, { transaction });
52-
await queryInterface.sequelize.query(createFullUserPermissionsByOrganization, { transaction });
53-
await queryInterface.sequelize.query(createFullUserPermissionsByUser, { transaction });
54-
await queryInterface.sequelize.query(createUserPermissionsByOption, { transaction });
55-
await queryInterface.sequelize.query(createUserActualPermissions, { transaction });
56-
57-
return transaction.commit();
58-
} catch (error) {
59-
await transaction.rollback();
60-
throw error;
61-
}
16+
{
17+
name: 'user_permissions_by_option',
18+
oldView: createUserPermissionsByOption,
19+
newView: createUserPermissionsByOption,
20+
},
21+
{
22+
name: 'full_user_permissions_by_user',
23+
oldView: createFullUserPermissionsByUser,
24+
newView: createFullUserPermissionsByUser,
25+
},
26+
{
27+
name: 'full_user_permissions_by_organization',
28+
oldView: createFullUserPermissionsByOrganization,
29+
newView: createFullUserPermissionsByOrganization,
30+
},
31+
{
32+
name: 'user_permissions_with_attachments',
33+
oldView: createUserPermissionsWithAttachments,
34+
newView: createUserPermissionsWithAttachments,
35+
},
36+
{
37+
name: 'full_user_permissions_by_role',
38+
oldView: createOldUserPermissionsByRole,
39+
newView: createNewUserPermissionsByRole,
6240
},
63-
};
41+
]);

0 commit comments

Comments
 (0)