Skip to content

Commit 70dd3f8

Browse files
ref: role repository
1 parent 5c7fb7b commit 70dd3f8

2 files changed

Lines changed: 107 additions & 83 deletions

File tree

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
const db = require('../db')
2+
3+
function getAllRoles() {
4+
return new Promise((resolve, reject) => {
5+
try {
6+
db.query(`SELECT id, name FROM role`, (error, results) => {
7+
if (error) {
8+
console.error("Error al consultar la db: ", error);
9+
reject('Error al consultar');
10+
return;
11+
}
12+
resolve(results);
13+
});
14+
}
15+
catch {
16+
reject('Error al consultar');
17+
}
18+
});
19+
}
20+
21+
function getNewId() {
22+
return new Promise((resolve, reject) => {
23+
try {
24+
db.query(`SELECT coalesce(max(id)+1,0) id FROM role`, (error, results) => {
25+
if (error) {
26+
console.error("Error al consultar la db: ", error);
27+
reject('Error al consultar');
28+
return;
29+
}
30+
resolve(results[0].id);
31+
});
32+
}
33+
catch {
34+
reject('Error al consultar');
35+
}
36+
37+
});
38+
}
39+
40+
function addRole(id, name) {
41+
return new Promise((resolve, reject) => {
42+
try {
43+
db.query('INSERT INTO role (id, name) VALUES (?, ?);', [id, name], (error, results) => {
44+
if (error) {
45+
console.error("Error al crear rol: ", error);
46+
reject('Error al crear rol');
47+
}
48+
else
49+
resolve(results.affectedRows == 1);
50+
});
51+
}
52+
catch {
53+
resolve(false);
54+
}
55+
});
56+
}
57+
58+
function deleteRoleById(id) {
59+
return new Promise((resolve, reject) => {
60+
try {
61+
db.query(`DELETE FROM role WHERE id = ?`, [id], (error, results) => {
62+
if (error) {
63+
console.error("Error al eliminar el rol de la db: ", error);
64+
resolve(false);
65+
}
66+
else
67+
resolve(results.affectedRows > 0);
68+
});
69+
}
70+
catch {
71+
resolve(false);
72+
}
73+
});
74+
}
75+
76+
function updateRole({name, id}){
77+
return new Promise((resolve, reject) => {
78+
try{
79+
db.query(`UPDATE role SET name = ? WHERE id = ?`, [name, id], (error, results) => {
80+
if (error) {
81+
console.error("Error al editar rol: ", error);
82+
resolve(false);
83+
}
84+
else
85+
resolve(results.affectedRows > 0);
86+
});
87+
}
88+
catch{
89+
resolve(false);
90+
}
91+
});
92+
}
93+
94+
module.exports = {
95+
getAllRoles,
96+
getNewId,
97+
addRole,
98+
deleteRoleById,
99+
updateRole
100+
}

web-server/server/service/role.js

Lines changed: 7 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,101 +1,25 @@
1-
const db = require('../db');
1+
const roleRepository = require('../repository/role');
22

33
module.exports = {
44
//Obtenció llistat de rols
55
getRoles: async function () {
6-
const results = await new Promise((resolve, reject) => {
7-
try{
8-
db.query(`SELECT id, name FROM role`, (error, results) => {
9-
if (error) {
10-
console.error("Error al consultar la db: ", error);
11-
reject('Error al consultar');
12-
return;
13-
}
14-
resolve(results);
15-
});
16-
}
17-
catch{
18-
reject('Error al consultar');
19-
}
20-
});
21-
return results;
6+
return await roleRepository.getAllRoles();;
227
},
238

249
//Afegir rol
2510
afegirRol: async function (nom) {
26-
const id = await new Promise((resolve, reject) => {
27-
try{
28-
db.query(`SELECT coalesce(max(id)+1,0) id FROM role`, (error, results) => {
29-
if (error) {
30-
console.error("Error al consultar la db: ", error);
31-
reject('Error al consultar');
32-
return;
33-
}
34-
resolve(results[0].id);
35-
});
36-
}
37-
catch{
38-
reject('Error al consultar');
39-
}
40-
41-
});
42-
const ok = await new Promise((resolve, reject) => {
43-
try{
44-
db.query('INSERT INTO role (id, name) VALUES (?, ?);', [id, nom], (error, results) => {
45-
if (error) {
46-
console.error("Error al crear rol: ", error);
47-
reject('Error al crear rol');
48-
}
49-
else
50-
resolve(results.affectedRows == 1);
51-
});
52-
}
53-
catch{
54-
resolve(false);
55-
}
56-
});
57-
if (ok)
58-
return id;
59-
else
60-
return null;
11+
const id = await roleRepository.getNewId();
12+
const ok = await roleRepository.addRole(id, nom);
13+
return ok ? id : null;
6114
},
6215

6316
//Eliminar rol
6417
deleteRoleById: async function (id) {
65-
return await new Promise((resolve, reject) => {
66-
try{
67-
db.query(`DELETE FROM role WHERE id = ?`, [id], (error, results) => {
68-
if (error) {
69-
console.error("Error al eliminar el rol de la db: ", error);
70-
resolve(false);
71-
}
72-
else
73-
resolve(results.affectedRows > 0);
74-
});
75-
}
76-
catch{
77-
resolve(false);
78-
}
79-
});
18+
return await roleRepository.deleteRoleById(id);
8019
},
8120

8221
//Actualitzar rol
8322
editarRol: async function (role) {
84-
return await new Promise((resolve, reject) => {
85-
try{
86-
db.query(`UPDATE role SET name = ? WHERE id = ?`, [role.name, role.id], (error, results) => {
87-
if (error) {
88-
console.error("Error al editar rol: ", error);
89-
resolve(false);
90-
}
91-
else
92-
resolve(results.affectedRows > 0);
93-
});
94-
}
95-
catch{
96-
resolve(false);
97-
}
98-
99-
});
23+
return await roleRepository.updateRole(role);
10024
},
10125
}

0 commit comments

Comments
 (0)