void GamesInsert::handleRequest(GlobalContext *pGlobalContext, QSqlDatabase *db, QHttpRequest *req, QJsonObject &response) { UserSession *pUserSession = pGlobalContext->userSession(req->url(), db); if (pUserSession == NULL) { setErrorResponse(response, 1021, "token are not found"); return; } else if (!pUserSession->isAdmin()) { setErrorResponse(response, 1022, "this method only for admin"); return; } QUrlQuery urlQuery(req->url()); QString name = urlQuery.queryItemValue("name"); if (name.isEmpty()) { setErrorResponse(response, 1055, "Parameter name are not found or it is empty"); return; } QSqlQuery query(*db); query.prepare("INSERT INTO backend_games(name) VALUES(:name)"); query.bindValue(":name", name); if (query.exec()) { response["result"] = QString("ok"); response["id"] = query.lastInsertId().toInt(); } else { setErrorResponse(response, 1056, query.lastError().text()); return; } };
void AdminUserUpdate::handleRequest(GlobalContext *pGlobalContext, QSqlDatabase *db, QHttpRequest *req, QJsonObject &response) { UserSession *pUserSession = pGlobalContext->userSession(req->url(), db); if (pUserSession == NULL) { setErrorResponse(response, 1074, "token are not found"); return; } else if (!pUserSession->isAdmin()) { setErrorResponse(response, 1075, "this method only for admin"); return; } };
void GamesDelete::handleRequest(GlobalContext *pGlobalContext, QSqlDatabase *db, QHttpRequest *req, QJsonObject &response) { UserSession *pUserSession = pGlobalContext->userSession(req->url(), db); if (pUserSession == NULL) { setErrorResponse(response, 1025, "token are not found"); return; } else if (!pUserSession->isAdmin()) { setErrorResponse(response, 1026, "this method only for admin"); return; } QUrlQuery urlQuery(req->url()); QString sId = urlQuery.queryItemValue("id"); if (sId.isEmpty()) { setErrorResponse(response, 1057, "Parameter id are not found or it is empty"); return; } bool bConvert; int nId = sId.toInt(&bConvert, 10); if (!bConvert) { setErrorResponse(response, 1058, "Parameter id must be integer"); return; } // TODO check exists game QSqlQuery query(*db); query.prepare("DELETE FROM backend_games WHERE id = :id"); query.bindValue(":id", nId); if (query.exec()) { response["result"] = QString("ok"); } else { setErrorResponse(response, 1059, query.lastError().text()); return; } };