rest: Add error check to delete commands

Every time a delete operation is performed it needs to be checked that a row
has been deleted. If no rows are deleted, then ogserver reports an error.

Previous to this change, it only checks that the connection to db
was succesful. For example, previously, if a user deletes a client that did
not exist, ogserver responds with no errors.

After this change, it responds with an error.

This error check has been implemented when deleting:
- A client
- An image
- A center
- A repo
- A room
- A server
master
Javier Hernandez 2023-11-03 20:44:37 +01:00 committed by OpenGnSys Support Team
parent ebd31b97b0
commit 4c1995d28f
1 changed files with 31 additions and 0 deletions

View File

@ -1834,6 +1834,11 @@ static int og_cmd_post_client_delete(json_t *element,
og_dbi_close(dbi);
return -1;
}
if (dbi_result_get_numrows_affected(result) < 1) {
dbi_result_free(result);
og_dbi_close(dbi);
return -1;
}
dbi_result_free(result);
}
@ -2580,6 +2585,11 @@ static int og_cmd_delete_image(json_t *element, struct og_msg_params *params)
syslog(LOG_ERR, "failed to query database\n");
return -1;
}
if (dbi_result_get_numrows_affected(result) < 1) {
dbi_result_free(result);
og_dbi_close(dbi);
return -1;
}
dbi_result_free(result);
rval = unlink(filename);
@ -4742,6 +4752,12 @@ static int og_cmd_post_center_delete(json_t *element,
return -1;
}
if (dbi_result_get_numrows_affected(result) < 1) {
dbi_result_free(result);
og_dbi_close(dbi);
return -1;
}
dbi_result_free(result);
og_dbi_close(dbi);
@ -5332,6 +5348,11 @@ static int og_cmd_post_repository_delete(json_t *element,
og_dbi_close(dbi);
return -1;
}
if (dbi_result_get_numrows_affected(result) < 1) {
dbi_result_free(result);
og_dbi_close(dbi);
return -1;
}
dbi_result_free(result);
og_dbi_close(dbi);
@ -5487,6 +5508,11 @@ static int og_cmd_post_room_delete(json_t *element,
og_dbi_close(dbi);
return -1;
}
if (dbi_result_get_numrows_affected(result) < 1) {
dbi_result_free(result);
og_dbi_close(dbi);
return -1;
}
dbi_result_free(result);
@ -5953,6 +5979,11 @@ static int og_cmd_delete_server(json_t *element,
og_dbi_close(dbi);
return -1;
}
if (dbi_result_get_numrows_affected(result) < 1) {
dbi_result_free(result);
og_dbi_close(dbi);
return -1;
}
dbi_result_free(result);
og_dbi_close(dbi);