define api fundation

This commit is contained in:
anon 2023-08-02 20:53:32 +02:00
parent 80e6ea3f23
commit f363df0e74
3 changed files with 58 additions and 0 deletions

5
include/api.h Normal file
View File

@ -0,0 +1,5 @@
#pragma once
int api_init(void);
void api_rope(void);
char* remind(char* who);

52
src/api.c Normal file
View File

@ -0,0 +1,52 @@
#include <sqlite3.h>
#include <stdio.h>
#include "stmt.h"
#include "irccolors.h"
#include "error.h"
void rope(int r);
#define DBFILE "test.sqlite"
#define DBERR(line) do {\
const int e = line; \
if(e != SQLITE_OK && e != SQLITE_ROW && e != SQLITE_DONE) \
{ \
fprintf(stderr, "sqlite (%d): %s\n", sqlite3_errcode(connection), sqlite3_errmsg(connection)); \
rope(DB_ERROR); \
} \
} while (0)
static sqlite3* connection = NULL;
int
api_init(){
DBERR(sqlite3_open(DBFILE, &connection));
stmt_prepare(remind_stmt);
return 0;
}
void api_rope(){
DBERR(sqlite3_finalize(remind_stmt));
sqlite3_close(connection);
}
char*
remind(char* who){
char* r;
char* title;
char* desc;
DBERR(sqlite3_bind_text(remind_stmt, 1, who, -1, SQLITE_STATIC));
DBERR(sqlite3_step(remind_stmt));
title = (char*)sqlite3_column_text(remind_stmt, 0);
title = strdup(title);
desc = (char*)sqlite3_column_text(remind_stmt, 1);
desc = strdup(desc);
asprintf(&r, IRC_COLOR_RED "%s: " IRC_COLOR_YELLOW "%s", title, desc);
return r;
}

View File

@ -1,3 +1,4 @@
#include "parse.c"
#include "fetch.c"
#include "api.c"
#include "main.c"