diff options
-rw-r--r-- | conf/clog.conf | 14 | ||||
-rw-r--r-- | src/clog.c | 85 |
2 files changed, 19 insertions, 80 deletions
diff --git a/conf/clog.conf b/conf/clog.conf index cf870b1..7ddcfd6 100644 --- a/conf/clog.conf +++ b/conf/clog.conf @@ -28,22 +28,12 @@ domain * { route / { handler get_index methods get - } - - route /entries { - handler get_index - methods get - } - - route ^/search$ { - handler search_entries - methods get validate qs:get query v_text } - route ^/entries/search$ { - handler search_entries + route /entries { + handler get_index methods get validate qs:get query v_text @@ -212,15 +212,25 @@ int redirect(struct http_request *req) { } int get_index(struct http_request *req) { - struct entry_query eq; - + int err = 0; size_t i = 0; - + const char *query = NULL; + struct entry_query eq; struct kore_buf *content = NULL; content = kore_buf_alloc(0); - entry_query_init(&eq, NULL, NULL); + http_populate_get(req); + + err = http_argument_get_string(req, "query", &query); + if (err == KORE_RESULT_OK) { + kore_log(LOG_INFO, "query string: '%s'", query); + } + else { + query = NULL; + } + + entry_query_init(&eq, NULL, query); (void) sql_select(&eq); if (eq.status != QUERY_STATUS_OK) { @@ -231,6 +241,9 @@ int get_index(struct http_request *req) { // Write header. kore_buf_append(content, asset_header_html, asset_len_header_html); + // Write search form. + kore_buf_append(content, asset_search_html, asset_len_search_html); + // Write table header. kore_buf_append(content, asset_table_header_html, asset_len_table_header_html); @@ -439,70 +452,6 @@ out: ; return KORE_RESULT_OK; } - -int search_entries(struct http_request *req) { - int err = 0; - - size_t i = 0; - - char *query = NULL; - - struct entry_query eq; - - struct kore_buf *content = NULL; - - content = kore_buf_alloc(0); - - http_populate_get(req); - - err = http_argument_get_string(req, "query", &query); - if (err == KORE_RESULT_OK) { - kore_log(LOG_INFO, "query string: '%s'", query); - } - - entry_query_init(&eq, NULL, query); - - (void) sql_select(&eq); - if (eq.status != QUERY_STATUS_OK) { - http_err_resp(req, HTTP_STATUS_INTERNAL_ERROR); - goto out; - } - - // Write header. - kore_buf_append(content, asset_header_html, asset_len_header_html); - - // Write search form. - kore_buf_append(content, asset_search_html, asset_len_search_html); - - if (eq.num_entries > 0) { - // Write table header. - kore_buf_append(content, asset_table_header_html, asset_len_table_header_html); - - // Iterate over entries and render them. - for (i = 0; i < eq.num_entries; i++) { - // Append rendered MD entry. - kore_buf_appendf( - content, - (const char *) asset_table_row_html, - eq.entries[i]->id, eq.entries[i]->title, eq.entries[i]->created_at, eq.entries[i]->updated_at - ); - } - - // Write table footer. - kore_buf_append(content, asset_table_footer_html, asset_len_table_footer_html); - } - - http_ok_resp(req, HTTP_STATUS_OK, content); - -out: ; - - entry_query_cleanup(&eq); - - kore_free(content); - - return KORE_RESULT_OK; -} - int sql_select(struct entry_query *eq) { int err = KORE_RESULT_OK; |