fixed modify and delete queries

This commit is contained in:
Pau 2025-04-06 18:36:19 +02:00
parent a1f3229c19
commit 5ca7fb8b06
5 changed files with 52 additions and 28 deletions

View File

@ -1,6 +1,6 @@
import { pagination } from "../../utils/pagination.js";
const _endpointsQuery = (_pagination) => ({ count }) => ({ uuid, route, method }) => {
const _endpointsQuery = (_pagination = '') => ({ count }) => ({ uuid, route, method }) => {
const uuidCondition = uuid ? "AND uuid = :uuid " : "";
const routeCondition = route ? "AND route = :route " : "";
const methodCondition = method ? "AND method = :method " : "";
@ -46,12 +46,14 @@ const insertEndpointsQuery = () => {
}
const updateEndpointsQuery = () => {
const routeCondition = route ? 'route = :route ' : '';
const routeCondition = route ? 'route = :route,' : '';
return `
UPDATE mydb.endpoints
SET
${routeCondition}
uuid = :uuid
WHERE uuid = :uuid;
AND deleted IS NULL;
SELECT * FROM mydb.endpoints WHERE uuid = :uuid;
`
}
@ -61,6 +63,7 @@ const softDeleteEndpointsQuery = () => {
UPDATE mydb.endpoints
SET deleted = :now, deletedBy = :deletedBy
WHERE uuid = :uuid;
AND deleted IS NULL;
SELECT * FROM mydb.endpoints WHERE uuid = :uuid;
`
}

View File

@ -1,6 +1,6 @@
import { pagination } from '../../utils/pagination.js'
const _permissionsQuery = (_pagination) => ({count}) => ({uuid, action, endpoint}) => {
const _permissionsQuery = (_pagination = '') => ({count}) => ({uuid, action, endpoint}) => {
const uuidCondition = uuid ? 'AND uuid = :uuid ' : '';
const actionCondition = action ? 'AND action = :action ' : '';
const endpointCondition = endpoint ? 'AND fk_endpoint = (SELECT id from mydb.endpoints WHERE route = :endpoint)' : '';
@ -20,7 +20,6 @@ const _permissionsQuery = (_pagination) => ({count}) => ({uuid, action, endpoint
AND
true
${uuidCondition}
${nameCondition}
${actionCondition}
${endpointCondition}
${_pagination}
@ -55,17 +54,18 @@ const insertPermissionsQuery = () => {
}
const modifyPermissionsQuery = (action, endpoint) => {
const actionCondition = action ? 'action = :action ' : '';
const endpointCondition = endpoint ? 'fk_endpoint = (SELECT id from mydb.endpoints WHERE route = :endpoint)' : '';
const actionCondition = action ? 'action = :action ,' : '';
const endpointCondition = endpoint ? 'fk_endpoint = (SELECT id from mydb.endpoints WHERE route = :endpoint),' : '';
return `
UPDATE mydb.permissions
SET
${actionCondition}
${endpointCondition}
uuid = :uuid
WHERE
permissions.uuid = :uuid
AND
permissions.deleted IS NULL
permissions.deleted IS NULL;
SELECT * FROM mydb.permissions WHERE uuid = :uuid;
`
}

View File

@ -49,7 +49,7 @@ const countRoleQuery = rest =>
*/
const insertRoleQuery = () => {
return `
INSERT INTO mydb.users (
INSERT INTO mydb.roles (
uuid,
name,
created,
@ -79,7 +79,9 @@ const modifyRoleQuery = ({ name }) => {
${nameCondition}
uuid = :uuid
WHERE
roles.uuid = :uuid;
roles.uuid = :uuid
AND
roles.deleted IS NULL;
SELECT mydb.roles.*
FROM mydb.roles
WHERE roles.uuid = :uuid

View File

@ -1,6 +1,6 @@
import { pagination } from '../../utils/pagination.js'
const _rolesHasPermissionsQuery = (_pagination) => ({count}) => ({uuid, permission_uuid, roleName}) => {
const _rolesHasPermissionsQuery = (_pagination = '') => ({count}) => ({uuid, permission_uuid, roleName}) => {
const roleNameCondition = roleName ? 'AND fk_role = (SELECT id from mydb.roles WHERE name = :roleName)' : '';
const uuidCondition = uuid ? 'AND fk_role = (SELECT id from mydb.roles WHERE uuid = :roleUuid)' : '';
const permissionsUuidCondition = permission_uuid ? 'AND fk_permission = (SELECT id from mydb.permissions WHERE uuid = :permissionUuid)' : '';
@ -68,6 +68,24 @@ const insertRolesHasPermissionsQuery = () => {
`
}
const modifyRolesHasPermissionsQuery = (roleUuid, permissionUuid) => {
const roleUuidCondition = roleUuid ? 'fk_role = (SELECT id from mydb.roles WHERE uuid = :roleUuid),' : '';
const permissionUuidCondition = permissionUuid ? 'fk_permission = (SELECT id from mydb.permissions WHERE uuid = :permissionUuid),' : '';
return `
UPDATE
mydb.roles_has_permissions as roles_has_permissions
SET
${roleUuidCondition}
${permissionUuidCondition}
uuid = :uuid
WHERE
roles_has_permissions.uuid = :uuid
AND
roles_has_permissions.deleted IS NULL;
SELECT * FROM mydb.roles_has_permissions WHERE uuid = :uuid;
`
}
const softDeleteRolesHasPermissionsQuery = () => {
return `
UPDATE
@ -86,7 +104,8 @@ const softDeleteRolesHasPermissionsQuery = () => {
export{
getRolesHasPermissionsQuery,
countRolesHasPermissionsQuery,
insertRolesHasPermissionsQuery,
softDeleteRolesHasPermissionsQuery
countRolesHasPermissionsQuery,
softDeleteRolesHasPermissionsQuery,
modifyRolesHasPermissionsQuery
}

View File

@ -60,8 +60,10 @@ const countUserListQuery = rest =>
* Insert query using parameters passed in request
* @returns {String} INSERT query
*/
const insertUserQuery = () => {
const insertUserQuery = ({email, fk_role, createdBy}) => {
const emailCondition = email ? ':email' : null;
const roleCondition = fk_role ? '(SELECT id FROM mydb.roles WHERE name = :fk_role)' : `(SELECT id FROM mydb.roles WHERE name = 'viewer')`;
const createdByCondition = createdBy ? 'createdBy = :createdBy' : null;
return `
INSERT INTO mydb.users (
uuid,
@ -77,9 +79,9 @@ const insertUserQuery = () => {
:username,
:password,
${emailCondition},
:role
${roleCondition},
:now,
:createdBy
${createdByCondition}
);
SELECT * FROM mydb.users WHERE uuid = :uuid;
`
@ -89,13 +91,11 @@ const insertUserQuery = () => {
* @param {Object} params All params involved in query to be modified in certain object matching uuid passed as req param
* @returns {String} UPDATE query
*/
const modifyUserQuery = ({ username, email, role }) => {
const usernameCondition = username ? ':username, ' : '';
const passwordCondition = password ? ':password, ' : '';
const emailCondition = email ? ':email, ' : '';
const roleCondition = role ? '(SELECT id FROM mydb.roles WHERE name = :role) ' : '';
const lastLoginDateCondition = lastLoginDate ? ':lastLoginDate, ' : '';
const userStatusCondition = userStatus ? ':userStatus, ' : '';
const modifyUserQuery = ({ username, password, email, role }) => {
const usernameCondition = username ? `username = :username, ` : ``;
const passwordCondition = password ? `password = :password, ` : ``;
const emailCondition = email ? `email = :email, ` : ``;
const roleCondition = role ? `fk_role = (SELECT id FROM mydb.roles WHERE name = :role) ` : ``;
return `
UPDATE
@ -105,11 +105,11 @@ const modifyUserQuery = ({ username, email, role }) => {
${passwordCondition}
${emailCondition}
${roleCondition}
${lastLoginDateCondition}
${userStatusCondition}
uuid = :uuid
WHERE
users.uuid = :uuid;
users.uuid = :uuid
AND
users.deleted IS NULL;
SELECT mydb.users.*
FROM mydb.users
WHERE users.uuid = :uuid