#include "../plugin.h" void init(); call __init__ = init; sqldb db; void init() { db = getdb(); if(db == NULL) printf("Unable to get database %s \n", __plugin__.name); // create table char* sql = "CREATE TABLE dummy(id INTEGER PRIMARY KEY, color TEXT);"; if(hastable(db,"dummy") == 0) dbquery(db,sql,NULL); printf("Finish init\n"); } void pexit() { LOG("%s\n","Plugin DUMMY is exited"); } void execute(void* client,const char* method,dictionary rq) { char * question; question = dvalue(rq,"color"); dbfield field = __field(); if(question != NULL) { add_field(&field,"color",question); dbinsert(db,"dummy",field); } free(field); json(client); dbrecord records = dball(db,"dummy"); __t(client,"{ \"records\":["); int cnt = 0; for(dbrecord r = records;r != NULL; r=r->next) { if(cnt!=0) __t(client,","); dbfield row = r-> fields; __t(client,"{\"id\":%s,\"color\":\"%s\"}", value_of(row,"id"), value_of(row,"color")); free(row); cnt++; } __t(client, "],\"total\":%d}",records->idx); free(records); //__t(client, query); } // delete record void delete(void* client,const char* method,dictionary rq) { char* id = dvalue(rq,"id"); html(client); if(id==NULL) { __t(client,"
Invalid delere request Back
", route(NULL)); } else { if(dbdelete(db,"dummy","id=%s",id)) { redirect(client,route(NULL)); } else { __t(client,"Invalid delere request Back
", route(NULL)); } } } void update(void* client,const char* method,dictionary rq) { char * id; html(client); if(IS_GET(method)) { id = dvalue(rq,"id"); if(id!=NULL) { dbrecord rc = dbselect(db,"dummy","id=%s",id); if(rc->idx > 0) { __t(client," ",route("update"),value_of(rc->fields,"color"),id); free(rc); return; } } __t(client,"No data found. Back
",route(NULL)); } else { char* color; id = dvalue(rq,"id"); color = dvalue(rq,"color"); dbfield fields = __field(); add_field(&fields,"color",color); if(dbupdate(db,"dummy",fields,"id=%s",id)) { redirect(client,route(NULL)); } else { __t(client,"Invalid Update request Back
", route(NULL)); } free(fields); } } void jsonex(void* client,const char* method,dictionary rq) { //json(client); //__t(client,"{name:\"%s\", age:%d}","Sang",30); jpeg(client); __f(client,htdocs("images/ex.jpg")); } void handler(void* client, const char* method, const char* rqpth, dictionary rq) { if(EQU(rqpth,"default")) { execute(client,method,rq); } else if(EQU(rqpth,"delete")) { delete(client,method,rq); } else if(EQU(rqpth,"update")) { execute(client,method,rq); } else if(EQU(rqpth,"jsonex")) { execute(client,method,rq); } else { unknow(client); } }