#include "ecewo.h"
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include "ecewo-static.h"

void qr(Req *req, Res *res) {
	char filename[24];
	const char *msg = get_query(req, "msg");
	int random = rand() % 9999999;
	sprintf(filename, "./qr/%d.png", random);
	if(!vfork()){
  	 	execl("/usr/bin/qrencode", "qrencode", "-s", "6", "-l", "H", "-o", filename, msg, NULL);
	}
	printf("sending file %s...", filename);
	char pathtofile[128];
	sprintf(pathtofile, "https://tklab.eu1.netbird.services/%s", filename);
	redirect(res, 301, pathtofile);
}

int main() {

	if (server_init() != 0) {
    		fprintf(stderr, "Failed to initialize server\n");
    		return -1;
	}
	
		if (static_init() != 0) {
        	fprintf(stderr, "Failed to initialize static module\n");
        	return 1;
    	}

	get("qr", qr);
	if (server_listen(3000) != 0) {
		fprintf(stderr, "Failed to start server\n");
		return -1;
	}
	server_atexit(static_cleanup);
	server_run();
	return 0;
}