94 lines
No EOL
1.7 KiB
C
94 lines
No EOL
1.7 KiB
C
#pragma once
|
|
#include <sqlite3.h>
|
|
#include <stdbool.h>
|
|
#include <sys/types.h>
|
|
|
|
/*
|
|
* command parsing
|
|
*/
|
|
|
|
enum klist_command {
|
|
USER,
|
|
LIST,
|
|
TASK,
|
|
};
|
|
struct klist {
|
|
sqlite3 *db;
|
|
sqlite3_stmt **stmts;
|
|
u_int cmd;
|
|
void *cmd_ctx;
|
|
int error;
|
|
|
|
};
|
|
typedef struct klist klist;
|
|
|
|
klist *klist_init(char *db);
|
|
void klist_deinit(klist *list);
|
|
|
|
|
|
enum klist_user_command {
|
|
USER_GET,
|
|
USER_DELETE
|
|
};
|
|
struct klist_user_context {
|
|
enum klist_command cmd;
|
|
};
|
|
typedef struct klist_user_context klist_user_context;
|
|
|
|
klist_user_context *klist_user_context_init(klist *list);
|
|
void klist_user_context_deinit(klist_user_context *ctx);
|
|
|
|
|
|
enum klist_list_command {
|
|
LIST_ADD,
|
|
LIST_EDIT,
|
|
LIST_GET,
|
|
LIST_DELETE,
|
|
};
|
|
struct klist_list_context {
|
|
enum klist_list_command cmd;
|
|
char *name;
|
|
char **stages;
|
|
size_t stages_len;
|
|
};
|
|
typedef struct klist_list_context klist_list_context;
|
|
|
|
klist_list_context *klist_list_context_init(klist *list);
|
|
klist_list_context *klist_list_context_get_by_id(klist_list_context *ctx, u_int id);
|
|
void klist_list_context_deinit(klist_list_context *ctx);
|
|
|
|
|
|
enum klist_task_command {
|
|
TASK_ADD,
|
|
TASK_EDIT,
|
|
TASK_GET,
|
|
TASK_DELETE,
|
|
};
|
|
struct klist_task_context {
|
|
enum klist_task_command cmd;
|
|
char *list;
|
|
char *name;
|
|
char *stage;
|
|
};
|
|
typedef struct klist_task_context klist_task_context;
|
|
|
|
klist_task_context *klist_task_context_init(klist *list);
|
|
void klist_task_context_deinit(klist_task_context *ctx);
|
|
|
|
|
|
|
|
/*
|
|
* sql preparations
|
|
*/
|
|
|
|
void klist_sql_prepare(klist *, char *);
|
|
|
|
|
|
|
|
/*
|
|
* assuring things
|
|
*/
|
|
|
|
bool klist_assure_user(klist *, __uid_t, char *);
|
|
void klist_assure_list(klist *, char *);
|
|
void klist_assure_task(klist *, char *); |