コード例 #1
0
ファイル: server.c プロジェクト: Konimiks/hello-world
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);
}
コード例 #2
0
ファイル: server.c プロジェクト: gribo4eg/repos1
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>");

}
コード例 #3
0
ファイル: server.c プロジェクト: Konimiks/hello-world
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>");

}