Added rough draft of view()
This commit is contained in:
parent
76e4f9f6e0
commit
ffb26ebefc
97
src/dodo.c
97
src/dodo.c
@ -4,6 +4,15 @@
|
|||||||
#include "x_string.h"
|
#include "x_string.h"
|
||||||
#include "x_curses.h"
|
#include "x_curses.h"
|
||||||
|
|
||||||
|
int checksqlerr(int rc, char *errmsg){
|
||||||
|
if( rc!=SQLITE_OK ){
|
||||||
|
fprintf(stderr, "SQL error: %s\n", errmsg);
|
||||||
|
sqlite3_free(errmsg);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int opendb(sqlite3 **db, char* filename){
|
int opendb(sqlite3 **db, char* filename){
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
@ -29,6 +38,39 @@ int callback(void *NotUsed, int argc, char **argv, char **azColName){
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int get_num_rows_sql_helper(void *NotUsed, int argc, char **argv, char **azColName){
|
||||||
|
|
||||||
|
if ( !argv[0] ){
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("%s\n", argv[0]);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Get number of tasks from tasks table give status
|
||||||
|
// TODO: Gotta make the error checking not broken
|
||||||
|
int get_num_rows(sqlite3 *db, char* status, char *errmsg){
|
||||||
|
char *sql_query = "SELECT COUNT(*) FROM tasks WHERE status = ?";
|
||||||
|
sqlite3_stmt *out_stmt;
|
||||||
|
int rc = 0;
|
||||||
|
//rc = sqlite3_exec(db, sql_query, get_num_rows_sql_helper, 0, &errmsg);
|
||||||
|
//checksqlerr(rc, errmsg);
|
||||||
|
|
||||||
|
rc = sqlite3_prepare_v2(db, sql_query, -1, &out_stmt, NULL);
|
||||||
|
checksqlerr(rc, errmsg);
|
||||||
|
|
||||||
|
rc = sqlite3_bind_text(out_stmt, 1, status, -1, SQLITE_STATIC);
|
||||||
|
checksqlerr(rc, errmsg);
|
||||||
|
|
||||||
|
while ( rc = sqlite3_step(out_stmt) == SQLITE_ROW ){
|
||||||
|
return sqlite3_column_int(out_stmt, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
int print_select(void *NotUsed, int argc, char **argv, char **azColName){
|
int print_select(void *NotUsed, int argc, char **argv, char **azColName){
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(i=0; i<argc; i++){
|
for(i=0; i<argc; i++){
|
||||||
@ -40,15 +82,6 @@ int print_select(void *NotUsed, int argc, char **argv, char **azColName){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int checksqlerr(int rc, char *errmsg){
|
|
||||||
if( rc!=SQLITE_OK ){
|
|
||||||
fprintf(stderr, "SQL error: %s\n", errmsg);
|
|
||||||
sqlite3_free(errmsg);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int view_all(sqlite3 *db, char *errmsg){
|
int view_all(sqlite3 *db, char *errmsg){
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
@ -59,15 +92,46 @@ int view_all(sqlite3 *db, char *errmsg){
|
|||||||
|
|
||||||
int view(sqlite3 *db, char *errmsg){
|
int view(sqlite3 *db, char *errmsg){
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
char *sql_query = "SELECT COUNT(*) FROM tasks WHERE status = 'today'";
|
int numrows = 0;
|
||||||
//sql_query = x_strconcat(sql_query, "UNION ALL ");
|
char* status = "today";
|
||||||
//sql_query = x_strconcat(sql_query, "SELECT title,due_date FROM tasks WHERE status = 'backlog'");
|
char *sql_query = "SELECT title,due_date FROM tasks WHERE status='today'";
|
||||||
|
|
||||||
|
// Print Heading TODO: make func
|
||||||
|
printf("%s%stitle due date%s", X_BOLD, X_UNDL, X_RST);
|
||||||
|
printf(" %s%stitle due date%s", X_BOLD, X_UNDL, X_RST);
|
||||||
printf(" %s%stitle due date%s", X_BOLD, X_UNDL, X_RST);
|
printf(" %s%stitle due date%s", X_BOLD, X_UNDL, X_RST);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
|
||||||
|
|
||||||
|
// Print "today" tasks
|
||||||
|
numrows = get_num_rows(db, status, errmsg);
|
||||||
rc = sqlite3_exec(db, sql_query, print_select, 0, &errmsg);
|
rc = sqlite3_exec(db, sql_query, print_select, 0, &errmsg);
|
||||||
checksqlerr(rc, errmsg);
|
checksqlerr(rc, errmsg);
|
||||||
|
X_goup(numrows);
|
||||||
|
X_goright(25);
|
||||||
|
|
||||||
|
// Print "backlog" tasks
|
||||||
|
status = "backlog";
|
||||||
|
sql_query = "SELECT title,due_date FROM tasks WHERE status='backlog'";
|
||||||
|
numrows = get_num_rows(db, status, errmsg);
|
||||||
|
rc = sqlite3_exec(db, sql_query, print_select, 0, &errmsg);
|
||||||
|
checksqlerr(rc, errmsg);
|
||||||
|
X_goup(numrows);
|
||||||
|
X_goright(50);
|
||||||
|
|
||||||
|
// Print "blocked" tasks
|
||||||
|
status = "blocked";
|
||||||
|
sql_query = "SELECT title,due_date FROM tasks WHERE status='blocked'";
|
||||||
|
numrows = get_num_rows(db, status, errmsg);
|
||||||
|
rc = sqlite3_exec(db, sql_query, print_select, 0, &errmsg);
|
||||||
|
checksqlerr(rc, errmsg);
|
||||||
|
X_godown(20);
|
||||||
|
|
||||||
|
printf("%d\n", numrows);
|
||||||
|
|
||||||
|
|
||||||
|
//get_num_rows(db, errmsg);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main( int argc, char **argv ){
|
int main( int argc, char **argv ){
|
||||||
@ -79,10 +143,15 @@ int main( int argc, char **argv ){
|
|||||||
|
|
||||||
puts(filename);
|
puts(filename);
|
||||||
|
|
||||||
|
puts(filename);
|
||||||
|
|
||||||
rc = opendb(&db, filename);
|
rc = opendb(&db, filename);
|
||||||
|
|
||||||
rc = view(db, errmsg);
|
rc = view(db, errmsg);
|
||||||
|
// puts("");
|
||||||
|
// puts("");
|
||||||
|
// puts("");
|
||||||
|
// puts("");
|
||||||
|
// rc = view_all(db, errmsg);
|
||||||
sqlite3_close(db);
|
sqlite3_close(db);
|
||||||
|
|
||||||
|
|
||||||
|
@ -5,7 +5,9 @@
|
|||||||
#define X_BOLD "\x1B[1m"
|
#define X_BOLD "\x1B[1m"
|
||||||
#define X_UNDL "\x1B[21m"
|
#define X_UNDL "\x1B[21m"
|
||||||
#define X_CYN "\x1B[36m"
|
#define X_CYN "\x1B[36m"
|
||||||
|
#define X_goup(y) printf("\x1B[%dF", y)
|
||||||
|
#define X_godown(y) printf("\x1B[%dE", y)
|
||||||
|
#define X_goright(x) printf("\x1B[%dC", x)
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user