diff options
author | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-09-14 19:00:54 +0800 |
---|---|---|
committer | ꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id> | 2022-09-14 19:00:54 +0800 |
commit | 092ab36bc4c2ecdce80082e51386d01cc2d47305 (patch) | |
tree | a1fbf5999acab4a137bb25b4569a5befb3f256c9 /web/main.c |
Minimum to get an app running
The config and HTML files are in this project, so the paths shouldn't be
decided in libshopify.
Diffstat (limited to 'web/main.c')
-rw-r--r-- | web/main.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/web/main.c b/web/main.c new file mode 100644 index 0000000..83a50aa --- /dev/null +++ b/web/main.c @@ -0,0 +1,42 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "shopify.h" + +static enum MHD_Result handle_request(void *cls, struct MHD_Connection *conn, + const char *url, const char *method, const char *version, + const char *upload_data, size_t *upload_data_size, + void **con_cls) +{ + if (strcmp(method, "GET")) + return MHD_NO; + struct shopify_param *params = *con_cls; + if (!params) { + params = malloc(sizeof(struct shopify_param)); + *con_cls = params; + return MHD_YES; + } + static const char *redir_url = "/auth"; + if (!shopify_valid(conn, url, redir_url, API_SECRET_KEY, ¶ms)) { + free(params); + return MHD_NO; + } + struct MHD_Response *resp; + enum MHD_Result ret = shopify_respond(params, url, redir_url, APP_URL, + APP_ID, API_KEY, API_SECRET_KEY, APP_DIR, conn, &resp); + MHD_destroy_response(resp); + free(params); + return ret; +} + +int main(int argc, char *argv[]) +{ + shopify_init(); + struct MHD_Daemon *daemon + = MHD_start_daemon(MHD_USE_INTERNAL_POLLING_THREAD, 3000, NULL, + NULL, &handle_request, NULL, MHD_OPTION_END); + getchar(); + MHD_stop_daemon(daemon); + shopify_cleanup(); + return 0; +} |