void server_DELETE_id(http_request_t req, socket_t * clientSocket, sqlite3* db) { char buf[1000] = ""; int id; if(strpbrk(req.uri,"-0123456789")) { id = atoi(strpbrk(req.uri,"-0123456789")); if(!db_checkId(db, id)) { socket_write_string(clientSocket,"HTTP1.1 404 NOT FOUND\n" "Content-Type: json\n" "Content-Length: %i\r\n\r\n" "%s\n""<body>Id not found<br>" "<a href=\"/Teacher/\">To Teachers</a></body>"); return; } } else { socket_write_string(clientSocket,"<body>Wrong id<br>" "<a href=\"/Teacher/\">To Teachers</a></body>"); return; } db_deleteTeacherById (db, id); server_send(clientSocket, "<body>Delete success<br>" "<a href=\"/Teacher/\">To Teachers</a></body>"); }
static void server_getByIdHTML(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] = "<head><title>Worker</title></head><h1>Worker</h1><p><a href=\"/workers/\">All workers</a></p><p>"; strcat(buffer, server_getWorkerHTML(workers[id])); strcat(buffer, "</p>"); 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); }
void server_DELETE_id(http_request_t req,socket_t * clientSocket,lanser** freelanser) { char buf[1000]=""; int id; if(strpbrk(req.uri,"-0123456789")) { id=atoi(strpbrk(req.uri,"-0123456789")); if(id>9 || id<0) { socket_write_string(clientSocket,"HTTP1.1 404 NOT FOUND\n" "Content-Type: json\n" "Content-Length: %i\r\n\r\n" "%s\n""<body>Id not found<br>" "<a href=\"/Freelancer/\">To Freelancers</a></body>"); return; } } else { socket_write_string(clientSocket,"<body>Wrong id<br>" "<a href=\"/Freelancer/\">To Freelancers</a></body>"); return; } Freelanser_set(freelanser[id],NULL,NULL,0,NULL,0); server_sent(clientSocket, "<body>Delete success<br>" "<a href=\"/Freelancer/\">To Freelancers</a></body>"); }
static void server_getByIdJSON(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>6 || id<0 || worker_getId(workers[id]) == -1) { socket_write_string(client, "Wrong ID"); return; } } else { server_notFound(client); return; } char buffer[1000] = ""; char* worker = worker_makeWorkerJSON(workers[id]); sprintf(buffer, "HTTP/1.1 200 OK\n" "Content-Type: application/json\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(worker)+1, worker); socket_write_string(client, buffer); socket_close(client); }
static void server_deleteByIdJSON(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, "Success!" "Worker %s successfully deleted!", worker_getName(workers[id])); workers[id] = worker_new(); sprintf(toSend, "HTTP/1.1 200 OK\n" "Content-Type: application/json\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(buffer), buffer); socket_write_string(client, toSend); socket_close(client); }
static void server_deleteByIdHTML(http_request_t request, socket_t* client, leading_t** leadings){ int id; char* getId = strpbrk(request.uri, "0123456"); if(getId){ id = atoi(getId); if(id < 0 || id > 6 || leading_getId(leadings[id]) == -1){ socket_write_string(client, "<h1>Wrong ID</h1><p><a href=\"/leadings/\">All leadings</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=\"/leadings/\">All leadings</a></p>" "<p>Leading %s successfully deleted!</p>", leading_getName(leadings[id])); leading_fill(leadings[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); }
void server_GET_id(http_request_t req,socket_t * clientSocket,lanser** freelancer) { char text[1000]=""; char *buf=NULL; int id; if(strpbrk(req.uri,"-0123456789")) { id=atoi(strpbrk(req.uri,"-0123456789")); if(id>9 || id<0) { socket_write_string(clientSocket,"HTTP1.1 404 NOT FOUND\n" "Content-Type: json\n" "Content-Length: %i\r\n\r\n" "Id not found"); return; } } else { socket_write_string(clientSocket,"Wrong id"); return; } buf = lanser_toJSON(freelancer[id]); strcat(text, buf); server_sent(clientSocket, text); }
void server_answer(db_t* self,list_t* list,http_request_t req, socket_t * clientSocket,lanser ** freelanser) { if(strcmp(req.uri,"/Freelancer/api/?")) { server_Sort(req,clientSocket,self); } else if (!strcmp(req.uri, "/Freelancer-count")) { server_count(clientSocket,list); } else if (!strcmp(req.uri, "/Freelancer/api")) { if (!strcmp(req.method, "GET")) server_GET_all(req,clientSocket,list); else if(!strcmp(req.method, "DELETE")) server_DELETE_all(req,clientSocket,list); else socket_write_string(clientSocket, "Method not allowed!\n"); } else if (strncmp(req.uri, "/Freelancer/api/",16)==0) { if(!strcmp(req.method,"GET")) server_GET_id(req,clientSocket,list); else if(!strcmp(req.method,"DELETE")) server_DELETE_id(req,clientSocket,list,self); else if(!strcmp(req.method,"POST")) { server_POST(req,clientSocket,list,self); } } else if(!strncmp(req.uri,"/Freelancer/delete/",19)) { server_DELETE_id(req,clientSocket,list,self); } else if(!strcmp(req.uri,"/Freelancer")) { server_start_page(clientSocket); } else if(!strcmp(req.uri,"/Freelancer/")) { server_GET_html(clientSocket,list); } else if(!strcmp(req.uri,"/Freelancer/paste")) { server_Paste_html(req,clientSocket,list); } else if(!strncmp(req.uri,"/Freelancer/",12)) { server_GET_id_html(req,clientSocket,list); } else socket_write_string(clientSocket,"\nHTTP1.1 404 NOT FOUND\n" "Content-Type: application/json\n" "Content-Length: %i\r\n\r\n""Freelancer not found\n"); }
void server_GET_id_html(http_request_t req,socket_t* clientSocket,lanser ** freelancer) { int id; if(strpbrk(req.uri,"-0123456789")) { id=atoi(strpbrk(req.uri,"-0123456789")); if(id>9 || id<0) { socket_write_string(clientSocket,"Id not found"); return; } } else { socket_write_string(clientSocket,"Wrong id"); return; } char text [1000]=""; char buf[10000]="<html>" "<head>" "<title>Page Title</title>" "</head>" "<body>" "<h1>Freelancer</h1>"; sprintf(text,"<p>Name:\t\t%s</p>" "<p>Surname:\t%s</p>" "<p>Age:\t\t%.2f</p>" "<p>Date:\t\t%s</p>" "<p>\tSalary:\t\t%i\n\n\n</p>" "<p><a href=""/Freelancer/"">To prev page</a></p>", Freelanser_name_get(freelancer[id]), Freelanser_surname_get(freelancer[id]), Freelanser_age_get(freelancer[id]), Freelanser_date_get(freelancer[id]), Freelanser_salary_get(freelancer[id]) ); strcat(buf,text); sprintf(text,"<p><a href=\"/Freelancer/\" onclick=\"doDelete()\">Delete Freelancer</a></p>" "<script>" "function doDelete(){" "var xhttp=new XMLHttpRequest();" "xhttp.open(\"DELETE\",\"/Freelancer/api/%i\",true);" "xhttp.send();" "}" "</script>",id); strcat(buf,text); strcat(buf,"</body>" "</html>"); socket_write_string(clientSocket,buf); }
static void server_postHTML(socket_t* client, worker_t** workers) { char buffer[2000] = ""; int id = 0; int count = worker_workersCount(workers); if(count >= MAX_WORKERS) { char fail[] = "<html><head><title>Failure</head></title>" "<body><h1>Failure</h1>" "<p>List is full!</p>" "<p><a href=\"/workers/\">Back to all workers</a></p>" "</body></html>"; sprintf(buffer, "HTTP/1.1 200 OK\n" "Content-Type: text/html\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; } char toSend[2000] = ""; sprintf(toSend, "<html><head><title>Post</title></head>" "<body><h1>New worker</h1>" "<form action=\"/api/workers/%i\" method=\"POST\">" "Name:<br><input type=\"text\" name=\"name\"><br>" "Surname:<br><input type=\"text\" name=\"surname\"><br>" "Birthday:<br><input type=\"text\" name=\"birthdate\"><br>" "Experience:<br><input type=\"text\" name=\"experience\"><br>" "Rating:<br><input type=\"text\" name=\"rating\"><br>" "<input type=\"submit\" value=\"Send POST request\" /></form><br>" "<p><a href=\"/workers/\">Back to all workers</a></p>" "</body></html>", id); sprintf(buffer, "HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(toSend), toSend); socket_write_string(client, buffer); socket_close(client); }
void server_GET_id_html(http_request_t req, socket_t* clientSocket, sqlite3 * db) { int id; if(strpbrk(req.uri,"-0123456789")) { id = atoi(strpbrk(req.uri,"-0123456789")); if (!db_checkId (db, id)) { socket_write_string(clientSocket,"Id not found"); return; } } else { socket_write_string(clientSocket,"Wrong id"); return; } char text[1000] = ""; char buf[10000] = "<html>" "<head>" "<title>Lab4</title>" "</head>" "<body>" "<h1>Teacher</h1>"; teacher_t temp = db_getTeacherById(db, id); sprintf(text,"<p>Name:\t\t%s</p>" "<p>Birthdate:\t%s</p>" "<p>Years:\t\t%i</p>" "<p>Rate:\t\t%.2f</p>" "<p>\tSubjects:\t\t%i\n\n\n</p>" "<p><a href=""/Teacher/"">To prev page</a></p>", teacher_getName(temp), teacher_getBirthdate(temp), teacher_getYears(temp), teacher_getRate(temp), teacher_getSubjects(temp) ); strcat(buf, text); sprintf(text, "<p><a href=\"/Teacher/\" onclick=\"doDelete()\">Delete Teacher</a></p>" "<script>" "function doDelete(){" "var xhttp=new XMLHttpRequest();" "xhttp.open(\"DELETE\",\"/api/Teacher/%i\",true);" "xhttp.send();" "}" "</script>", id); strcat(buf, text); strcat(buf, "</body>" "</html>"); socket_write_string(clientSocket, buf); }
static void server_postHTML(socket_t* client) { char buffer[2000] = ""; char toSend[2000] = ""; strcpy(toSend, "<html><head><title>Post</title></head>" "<body><h1>New worker</h1>" "<form action=\"/api/workers/\" method=\"POST\">" "Name:<br><input type=\"text\" name=\"name\"><br>" "Surname:<br><input type=\"text\" name=\"surname\"><br>" "Salary:<br><input type=\"text\" name=\"salary\"><br>" "Year:<br><input type=\"text\" name=\"year\"><br>" "<input type=\"submit\" value=\"Send POST request\" /></form><br>" "<p><a href=\"/workers/\">Back to all workers</a></p>" "</body></html>"); sprintf(buffer, "HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(toSend), toSend); socket_write_string(client, buffer); socket_close(client); }
void server_pensionersRetPOST(socket_t * client, http_request_t * req, resource_t * lt) { char buf[10240] = ""; char * pageText = "<form action=\"http://127.0.0.1:5000/pensioners\" method=\"POST\">" "id:<br>" "<input type=\"text\" name=\"id\" value='3'><br>" "Name:<br>" "<input type=\"text\" name=\"name\" value='Ivan'><br>" "Surname:<br>" "<input type=\"text\" name=\"surname\" value='Ivanov'><br>" "Birthdate:<br>" "<input type=\"text\" name=\"birthday\" value='1945-12-12'><br>" "Pension:<br>" "<input type=\"text\" name=\"pension\" value='2010.25'><br>" "Experience:<br>" "<input type=\"text\" name=\"experience\" value='60'><br><br>" "<input type=\"submit\" value='Send POST request' />" "</form>"; char * textHtml = textToBuf_HTML(pageText); strcat(buf, textHtml); free(textHtml); socket_write_string(client, buf); socket_close(client); }
void server_mastersHtmlPOST(socket_t * client, http_request_t * req, db_t * db) { char buffer[10240] = ""; if (strcmp(req->method, "GET") == 0) { char * pageText = "<form action=\"http://127.0.0.1:5000/ScrumMasters\" method=\"POST\">" "Name:<br>" "<input type=\"text\" name=\"name\" value='Ivan'><br>" "Surname:<br>" "<input type=\"text\" name=\"surname\" value='Ivanov'><br>" "CountK:<br>" "<input type=\"text\" name=\"countK\" value='3'><br>" "CountP:<br>" "<input type=\"text\" name=\"countP\" value='3'><br><br>" "<input type=\"submit\" value='Send POST request' />" "</form>"; char * textHTML = textToHTML(pageText); strcat(buffer, textHTML); free(textHTML); } socket_write_string(client, buffer); socket_close(client); }
void post_new_row_post(http_request_t req, socket_t * clientSocket,db_t * db) { char text[20]; strcpy(text,req.uri+10); int check=db_insert(db, text,req); char buf[1000]; if(check==0) { sprintf(buf,"<html>" "<head>" "<title>Page Title</title>" "</head>" "<body>" "<p align=\"center\">INSSERT SUCCESS</p>" "<p align=\"center\"><a href=\"/db/%s\" align=\"center\" >To %s</a></p>" "</body>" "</html>",text,text); } else { sprintf(buf, "<html>" "<head>" "<title>Page Title</title>" "</head>" "<body>" "<p align=\"center\">INSSERT ERROR</p>" "<p align=\"center\"><a href=\"/db/%s\" align=\"center\" >To %s</a></p>" "</body>" "</html>",text,text); } socket_write_string(clientSocket,buf); }
void edit_row(http_request_t req, socket_t * clientSocket,db_t * db) { int id=atoi(strpbrk(req.uri,"0123456789")); ptrdiff_t nameLeng=(strpbrk(req.uri,"0123456789")-1)-(req.uri+10); char *name=malloc(sizeof(char)*nameLeng+1); memcpy(name,req.uri+10,nameLeng); name[nameLeng]='\0'; sqlite3_stmt * stmt = NULL; stmt=db_getrow(db,name,id); char buf[5000]=""; char text[5000]=""; sprintf(text, "<html>" "<body>" "<form align=\"center\" action=""http://127.0.0.1:5000/db/edit/%s/%i"" method=""POST"">" "Name:<br>" "<input type=""text"" name=""name"" value=%s><br>" "Surname:<br>" "<input type=""text"" name=""surname"" value=%s ><br>" "Age:<br>" "<input type=""text"" name=""age"" value=%i><br>" "<input type=""submit"" value='Send EDIT request' />" "</form>" "</body>",name,id,sqlite3_column_text(stmt, 0),sqlite3_column_text(stmt, 1),sqlite3_column_int(stmt, 2)); strcat(buf,text); socket_write_string(clientSocket,buf); }
static void server_personalTask(http_request_t request, socket_t* client, db_t* base) { char salaryReq[10], salaryVal[10], yearReq[10], yearVal[10], toSend[10000]; char* str = strtok(request.uri, "?&="); str = strtok(NULL, "?&="); strcpy(salaryReq, str); // salary_m || salary_l str = strtok(NULL, "?&="); strcpy(salaryVal, str); // salary value str = strtok(NULL, "?&="); strcpy(yearReq, str); // year_m || year_l str = strtok(NULL, "?&="); strcpy(yearVal, str); // year value int count = db_countWorkers(base); worker_t** workers[count]; for(int i = 0; i<count; i++) workers[i] = worker_new(); str = db_personalTask(base, salaryReq, atoi(salaryVal), yearReq, atoi(yearVal), workers); sprintf(toSend, "HTTP/1.1 200 OK\n" "Content-Type: application/json\n" "Content-Length: %i\r\n\r\n" "\n%s", strlen(str)+1, str); for(int i = 0; i<count; i++) worker_free(workers[i]); socket_write_string(client, toSend); socket_close(client); }
void server_teachers(socket_t * client, http_request_t * req) { char buffer[10240]; if (strcmp(req->method, "GET") == 0) { int amount = teacher_getSize(); char * teachersJSON = teacher_parseAllToJSON(teachers, amount); sprintf(buffer, "HTTP/1.1 200 OK\n" "Content-Type: application/json\n" "Content-Length: %zu\n" "Connection: keep-alive\n" "\n%s", strlen(teachersJSON), teachersJSON); free(teachersJSON); } else { char * errText = "Invalid command!"; sprintf(buffer, "HTTP/1.1 404 \n" "Content-Type: text/html\n" "Content-Length: %zu\n" "\n%s", strlen(errText), errText); } socket_write_string(client, buffer); socket_close(client); }
void server_Paste_html(http_request_t req,socket_t* clientSocket,lanser ** freelancer) { char buf[5000]=""; char text[5000]=""; int id=0; while(Freelanser_name_get(freelancer[id])!=NULL) { id++; if(id>9) { strcat(buf,"<body>" "Can't Post the new Freelancer<br>" "<a href=""/Freelancer/"">Back</a>" "</body>"); } } sprintf(text, "<html>" "<body>" "<form action=""http://127.0.0.1:5000/Freelancer/api/%i"" method=""POST"">" "Name:<br>" "<input type=""text"" name=""name""><br>" "Surname:<br>" "<input type=""text"" name=""surname"" ><br>" "Age:<br>" "<input type=""text"" name=""age""><br>" "Date:<br>" "<input type=""text"" name=""date""><br>" "Salary:<br>" "<input type=""text"" name=""salary""><br>" "<input type=""submit"" value='Send POST request' />" "</form>" "</body>",id); strcat(buf,text); socket_write_string(clientSocket,buf); }
void start_page(socket_t * clientSocket,db_t * db) { char buf[10000]="<html>" "<head>" "<title>Page Title</title>" "</head>" "<body>" "<h1>Tables</h1>"; int kil=get_kil(db); char **text=malloc(sizeof(void*)*kil); for(int j=0;j<kil;j++) text[j]=malloc(50); db_get_name(db,text); int count =kil-1; for(int i =0;i<count;i++) { char rep[1000]; sprintf(rep,"<p><a href=\"/db/%s\">%s</a></p>",text[i],text[i]); strcat(buf,rep); } strcat(buf,"</body>" "</html>"); socket_write_string(clientSocket,buf); }
void server_pensionerDelete(socket_t * client, resource_t * lt, http_request_t * req) { char buf[2000] = ""; char * p = strstr(req->uri, "/api/pensioners/"); p = p + 16; int index = atoi(p); if(index >= 0) { for(int i = 0; i < resource_getCnt(lt); i++) { if(index == resource_getID(lt, i)) { pensioner_t * pens = resource_deletePens(lt, index); char * text = pensioner_toJSON(pens); char * textP = textToBuf_JSON(text); strcat(buf, textP); free(textP); } } } else { char * pageText = "{\n \"Error\": \"ID Not Found\"\n}"; char * textP = textToBuf_JSON(pageText); strcat(buf, textP); free(textP); } socket_write_string(client, buf); socket_close(client); }
int inc_counter_by_value(int socketfd, const char* name, int value) { char text[256]; //sprintf(text, "%s:%d|c|@%f", name, value, DEFAULT_RATE); sprintf(text, "%s:%d|c", name, value); printf("%s\n", text); return socket_write_string(text, socketfd); }
void server_allMusicians(socket_t * client, http_request_t * req) { char strbuf[10240]; if (strcmp(req->method, "GET") == 0) { char * allMusiciansJson = musician_listToJSON(musicians_arr, (sizeof(musicians_arr) / sizeof(musicians_arr[0]))); sprintf(strbuf, "HTTP/1.1 200 OK\n" "Content-Type: application/json\n" "Content-Length: %zu\n" "Connection: keep-alive\n" "\n%s", strlen(allMusiciansJson), allMusiciansJson); free(allMusiciansJson); } else { char * error = "Error!"; sprintf(strbuf, "HTTP/1.1 404 ERROR \n" "Content-Type: text/html\n" "Content-Length: %zu\n" "\n%s", strlen(error), error); } socket_write_string(client, strbuf); socket_close(client); }
void server_send (socket_t * clientSocket, char * text) { char buf[10000]; sprintf(buf, "\nHTTP1.1 200 OK\n" "Content-Type: application/json\n" "Content-Length: %i\r\n\r\n" "%s\n", strlen(text), text); socket_write_string(clientSocket,buf); }
static void server_post(http_request_t request, socket_t* client, leading_t** leadings){ int id = 0; int count = leading_leadingsCount(leadings); 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=\"/leadings/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 data!" "<p><a href=\"/leadings/new/\">Back to POST</a></p>"); return; } if(experience == " ") experience = "0"; if(rating == " ") rating = "0.0"; if(count >= MAX_LEADINGS){ char fail[] = "Limit of leadings!"; 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_LEADINGS; i++, id++) { if(leading_getId(leadings[i]) == -1) break; } int exp = atoi(experience); double rate = atof(rating); leading_fill(leadings[id], id, name, surname, birthdate, exp, rate); server_send(client, "Success" "<p><a href=\"/leadings/\">All leadings</a></p>"); }
void server_pensionerHtmlID(socket_t * client, resource_t * lt, http_request_t * req) { char buf[10000] = ""; char * p = strstr(req->uri, "/pensioners/"); p = p + 12; int index = atoi(p); if(index >= 0) { for(int i = 0; i < resource_getCnt(lt); i++) { if(index == resource_getID(lt, i)) { if(strcmp(req->method, "GET") == 0) { char pText[1000] = ""; char * text = pensioner_toHTML(resource_getbyId(lt, index), index); strcat(pText, text); char * pageText = "<a href=\"http://127.0.0.1:5000/pensioners\"><br>Back to the list.</a>"; strcat(pText, pageText); char * textHtml = textToBuf_HTML(pText); strcat(buf, textHtml); free(textHtml); } else if(strcmp(req->method, "DELETE") == 0) { char pText[1000] = ""; char * text = pensioner_toHTML(resource_deletePens(lt, index), index); strcat(pText, text); free(text); sprintf(buf, "HTTP/1.1 200 OK\n" "Access-Control-Allow-Origin: *\n" "Access-Control-Allow-Methods: DELETE\n" "\n"); } } } char * message = "<h3 style=\"color:orange\">ID not found!</h3>"; char * textHtml = textToBuf_HTML(message); strcat(buf, textHtml); free(textHtml); } else { char * message = "<h3 style=\"color:orange\">ID not found!</h3>"; char * textHtml = textToBuf_HTML(message); strcat(buf, textHtml); free(textHtml); } socket_write_string(client, buf); socket_close(client); }
void server_mastersByID(socket_t * client, http_request_t * req, db_t * db) { char buffer[10240] = ""; char * point = strstr(req->uri, "/api/ScrumMasters/"); point += 18; int index = atoi(point); if(0 < index && index < db_count(db) + 1) { if (strcmp(req->method, "GET") == 0) { master_t * master = db_getDataById(db, index - 1); cJSON * jText = cJSON_CreateObject(); cJSON_AddItemToObject(jText, "Name", cJSON_CreateString(master_getName(master))); cJSON_AddItemToObject(jText, "Surname", cJSON_CreateString(master_getSurname(master))); cJSON_AddItemToObject(jText, "CountK", cJSON_CreateNumber(master_getCountK(master))); cJSON_AddItemToObject(jText, "CountP", cJSON_CreateNumber(master_getCountP(master))); char * pageText = cJSON_Print(jText); free(master); char * textJSON = textToJSON(pageText); strcat(buffer, textJSON); free(textJSON); } else if (strcmp(req->method, "DELETE") == 0) { master_t * master = db_getDataById(db, index - 1); db_deleteData(db, master_getID(master)); free(master); cJSON * jText = cJSON_CreateObject(); cJSON_AddItemToObject(jText, "Success", cJSON_CreateString("Successfully deleted")); char * pageText = cJSON_Print(jText); char * textJSON = textToJSON(pageText); strcat(buffer, textJSON); free(textJSON); } } else { cJSON * jText = cJSON_CreateObject(); cJSON_AddItemToObject(jText, "Error", cJSON_CreateString("ID Not Found")); char * pageText = cJSON_Print(jText); char * textJSON = textToJSON(pageText); strcat(buffer, textJSON); free(textJSON); } socket_write_string(client, buffer); socket_close(client); }
void server_file_parse(socket_t * client){ char html_doc[15000]; char * filename = {"C:\\Users\\User\\Desktop\\samokh-52\\courses\\prog_base_2\\tests\\test_2\\Server_kr_app\\files\\filename.txt"}; if(file_exists(filename)){ char text[10000]; char buf[1000]; char ContentToReceive[10000]; memset(ContentToReceive, '\0', 10000); FILE *f = fopen(filename, "r"); char *word; int i = 0, j = 0; char html_text[15000] ="<!DOCTYPE html> <html> <head>List</head> <body><ol type=\"1\">"; while(fgets(buf, 1000, f) != NULL) { strcat(ContentToReceive, buf); } word = strtok(ContentToReceive, " "); while(word != NULL){ /*j = 0; while(ContentToReceive[i] != ' '){ word[j] = ContentToReceive[i]; j++; i++; }*/ strcat(html_text, "<li>"); strcat(html_text, word); strcat(html_text, "</li>"); puts(word); word = strtok(NULL, " "); } puts("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); strcat(html_text, "</ol>"); strcat(html_text, "</body> </html>"); sprintf(html_doc, "HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Content-Length: %u\n" "\n%s", strlen(html_text), html_text); } else if(!file_exists(filename)){ char html_text[15000] ="<!DOCTYPE html> <html> <head>File does`not exist</head> <body><ol type=\"1\">"; strcat(html_text, "</body> </html>"); char html_doc[15000]; sprintf(html_doc, "HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Content-Length: %u\n" "\n%s", strlen(html_text), html_text); } socket_write_string(client, html_doc); socket_close(client); }
static void server_send(socket_t* client, const char* smth){ char homeBuf[800]; sprintf(homeBuf, "HTTP/1.1 200 OK\n" "Content-Type: text/html\n" "Content-Length: %i\n" "\n%s", strlen(smth), smth); socket_write_string(client, homeBuf); socket_close(client); }
//FUNCTION THAT PRINTS ERROR MSG //RETURNS: ERROR MSG void server_invPath(socket_t * client) { char replyBuf[1024]; char * errText = "Invalid path!"; sprintf(replyBuf, "HTTP/1.1 404 \n" "Content-Type: text/html\n" "Content-Length: %zu\n" "\n%s", strlen(errText), errText); socket_write_string(client, replyBuf); socket_close(client); }