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"; 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 uuidCondition = uuid ? "AND uuid = :uuid " : "";
const routeCondition = route ? "AND route = :route " : ""; const routeCondition = route ? "AND route = :route " : "";
const methodCondition = method ? "AND method = :method " : ""; const methodCondition = method ? "AND method = :method " : "";
@ -46,12 +46,14 @@ const insertEndpointsQuery = () => {
} }
const updateEndpointsQuery = () => { const updateEndpointsQuery = () => {
const routeCondition = route ? 'route = :route ' : ''; const routeCondition = route ? 'route = :route,' : '';
return ` return `
UPDATE mydb.endpoints UPDATE mydb.endpoints
SET SET
${routeCondition} ${routeCondition}
uuid = :uuid
WHERE uuid = :uuid; WHERE uuid = :uuid;
AND deleted IS NULL;
SELECT * FROM mydb.endpoints WHERE uuid = :uuid; SELECT * FROM mydb.endpoints WHERE uuid = :uuid;
` `
} }
@ -61,6 +63,7 @@ const softDeleteEndpointsQuery = () => {
UPDATE mydb.endpoints UPDATE mydb.endpoints
SET deleted = :now, deletedBy = :deletedBy SET deleted = :now, deletedBy = :deletedBy
WHERE uuid = :uuid; WHERE uuid = :uuid;
AND deleted IS NULL;
SELECT * FROM mydb.endpoints WHERE uuid = :uuid; SELECT * FROM mydb.endpoints WHERE uuid = :uuid;
` `
} }

View File

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

View File

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

View File

@ -1,6 +1,6 @@
import { pagination } from '../../utils/pagination.js' 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 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 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)' : ''; 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 = () => { const softDeleteRolesHasPermissionsQuery = () => {
return ` return `
UPDATE UPDATE
@ -86,7 +104,8 @@ const softDeleteRolesHasPermissionsQuery = () => {
export{ export{
getRolesHasPermissionsQuery, getRolesHasPermissionsQuery,
countRolesHasPermissionsQuery,
insertRolesHasPermissionsQuery, insertRolesHasPermissionsQuery,
softDeleteRolesHasPermissionsQuery countRolesHasPermissionsQuery,
softDeleteRolesHasPermissionsQuery,
modifyRolesHasPermissionsQuery
} }

View File

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