static void server_deleteByIdHTML(http_request_t request, socket_t* client, worker_t** workers) { int id; char* getId = strpbrk(request.uri, "0123456"); if(getId) { id = atoi(getId); if(id<0 || id>6 || worker_getId(workers[id]) == -1) { socket_write_string(client, "<h1>Wrong ID</h1><p><a href=\"/workers/\">All workers</a></p>"); return; } } else { server_notFound(client); return; } char toSend[2000]; char buffer[2000]; sprintf(buffer, "<head><title>Delete</title></head>" "<h1>Success</h1><p><a href=\"/workers/\">All workers</a></p>" "<p>Worker %s successfully deleted!</p>", worker_getName(workers[id])); //workers[id] = worker_new(); worker_fill(workers[id], -1, "qqq", "qqq", "1111-11-11", 0, 0); sprintf(toSend, "HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(buffer), buffer); socket_write_string(client, toSend); socket_close(client); }
static void server_post(http_request_t request, socket_t* client, db_t* base) { char buffer[2000] =""; char* name = http_request_getArg(&request, "name"); char* surname = http_request_getArg(&request, "surname"); char* salary = http_request_getArg(&request, "salary"); char* year = http_request_getArg(&request, "year"); if(strlen(name) <= 1 || strlen(surname) <= 1) { server_send(client, "Name/Surname wasn't filled in" "<p><a href=\"/workers/new/\">Back to POST</a></p>"); return; } if(isdigit(salary[0]) == 0 || isdigit(year[0])==0) { server_send(client, "Wrong data!" "<p><a href=\"/workers/new/\">Back to POST</a></p>"); return; } if(salary == " ") salary = "0"; if(year == " ") year = "0"; worker_t* worker = worker_new(); worker_fill(worker, -1, name, surname, atoi(salary), atoi(year)); db_insertWorker(base, worker); worker_free(worker); server_send(client, "Success" "<p><a href=\"/workers/\">All workers</a></p>"); }
static void server_post(http_request_t request, socket_t* client, worker_t** workers) { int id = 0; int count = worker_workersCount(workers); char buffer[2000] =""; char* str; char* name = http_request_getArg(&request, "name"); char* surname = http_request_getArg(&request, "surname"); char* birthdate = http_request_getArg(&request, "birthdate"); char* experience = http_request_getArg(&request, "experience"); char* rating = http_request_getArg(&request, "rating"); if(strlen(name) <= 1 || strlen(surname) <= 1 || strlen(birthdate) <= 1) { server_send(client, "Name/Surname/Birthday wasn't filled in" "<p><a href=\"/workers/new/\">Back to POST</a></p>"); return; } str = birthdate; if(strlen(birthdate) > 10 || str[4] != '-' || str[7] != '-' || isdigit(birthdate[0])==0 || isdigit(experience[0]) == 0 || isdigit(rating[0])==0) { server_send(client, "Wrong input!" "<p><a href=\"/workers/new/\">Back to POST</a></p>"); return; } if(experience == " ") experience = "0"; if(rating == " ") rating = "0.0"; if(count >= MAX_WORKERS) { char fail[] = "Limit of workers!"; sprintf(buffer, "HTTP/1.1 404 \n" "Content-Type: text\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(fail), fail); socket_write_string(client, buffer); socket_close(client); return; } for(int i = 0; i<MAX_WORKERS; i++, id++) { if(worker_getId(workers[i]) == -1) break; } int exp = atoi(experience); double rate = atof(rating); worker_fill(workers[id], id, name, surname, birthdate, exp, rate); server_send(client, "Success!!!" "<p><a href=\"/workers/\">All workers</a></p>"); }