diff options
| author | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-08-03 19:22:36 +0200 |
|---|---|---|
| committer | Aldrik Ramaekers <aldrikboy@gmail.com> | 2025-08-03 19:22:36 +0200 |
| commit | 853bbb3752a5fa2f58ef456ffb6e3a552e13cb11 (patch) | |
| tree | ce49a533f82a42a65fa6a4771a7b8fbfe33798cf /src/administration.cpp | |
initial commit
Diffstat (limited to 'src/administration.cpp')
| -rw-r--r-- | src/administration.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/administration.cpp b/src/administration.cpp new file mode 100644 index 0000000..94b1910 --- /dev/null +++ b/src/administration.cpp @@ -0,0 +1,45 @@ +#include "administration.hpp" +#include <stdio.h> +administration g_administration; + +void init_administration_obj() +{ + list_init(&g_administration.contacts); +} + +void destroy_administration_obj() +{ + list_destroy(&g_administration.contacts); +} + +bool create_contact(contact data) +{ + contact* new_contact = (contact*)malloc(sizeof(contact)); + memcpy((void*)new_contact, (void*)&data, sizeof(contact)); + list_append(&g_administration.contacts, new_contact); + + g_administration.next_id++; + + return true; +} + +bool update_contact(contact data) +{ + list_iterator_start(&g_administration.contacts); + while (list_iterator_hasnext(&g_administration.contacts)) { + contact* c = (contact *)list_iterator_next(&g_administration.contacts); + + if (strcmp(c->id, data.id) == 0) { + memcpy(c, &data, sizeof(data)); + return true; + } + } + list_iterator_stop(&g_administration.contacts); + + return false; +} + +void remove_contact(int index) +{ + list_delete_at(&g_administration.contacts, index); +}
\ No newline at end of file |
