From 88b1b119dfa35f36b64d81dbe6c84f46d86455c5 Mon Sep 17 00:00:00 2001 From: Steru Date: Fri, 16 Aug 2024 22:19:42 +0200 Subject: Compacted competitors into one object, deleted API class (now in sportmodel). --- src/api/OlympicsAPI.cpp | 140 ------------------------------------------------ 1 file changed, 140 deletions(-) delete mode 100644 src/api/OlympicsAPI.cpp (limited to 'src/api/OlympicsAPI.cpp') diff --git a/src/api/OlympicsAPI.cpp b/src/api/OlympicsAPI.cpp deleted file mode 100644 index 0334800..0000000 --- a/src/api/OlympicsAPI.cpp +++ /dev/null @@ -1,140 +0,0 @@ - -#include "OlympicsAPI.h" -#include -#include - -// networking -#include -#include -#include -#include -#include -#include - -// json parsing -#include -#include -#include -#include -#include -#include - - -using namespace std; - -/** - * @brief OlympicsAPI::getSportData Requests the current data from the Olympics API of a certain discipline. - * @param sport The discipline to request. - * @return The current information provided by the API endpoint. - */ -QJsonObject OlympicsAPI::getSportData(OlympicsAPI::Disciplines sport) { - string shortName = this->getDisciplineShort(sport); - - if (USE_API_REQUEST) { - // create custom temporary event loop on stack - QEventLoop eventLoop; - - // "quit()" the event-loop, when the network request "finished()" - QNetworkAccessManager mgr; - QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit())); - - QString endpoint = (API_LINK + shortName).c_str(); - - // the HTTP request - QNetworkRequest req( (QUrl( endpoint )) ); - QNetworkReply *reply = mgr.get(req); - eventLoop.exec(); // blocks stack until "finished()" has been called - - if (reply->error() == QNetworkReply::NoError) { - //success - - QString strReply = (QString)reply->readAll(); - - //parse json - QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8()); - - QJsonObject jsonObj = jsonResponse.object(); - - delete reply; - - return jsonObj; - } - else { - //failure - delete reply; - - throw invalid_argument("API request failed."); - } - } - - // if API is not used, open locally stored data - QString filePath = ("../../res/mock/" + shortName + ".json").c_str(); - QFile file( filePath ); - - if(!file.open(QIODevice::ReadOnly | QIODevice::Text)) { - throw invalid_argument("Could not open file to read data of the given discipline."); - } else { - QString text = file.readAll(); - file.close(); - return (QJsonDocument::fromJson(text.toUtf8())).object(); - } -} - -/** - * @brief OlympicsAPI::getDisciplineShort Get the discipline's short name defined by the IOC (International Olympic Committee) - * @param sport The sport you want to get the name from. - * @return The short name as a string. - */ -string OlympicsAPI::getDisciplineShort(OlympicsAPI::Disciplines sport) { - switch (sport) { - case OlympicsAPI::Disciplines::AquaticsArtisticSwimming: return "SWA"; - case OlympicsAPI::Disciplines::AquaticsDiving: return "DIV"; - case OlympicsAPI::Disciplines::AquaticsMarathonSwimming: return "OWS"; - case OlympicsAPI::Disciplines::AquaticsSwimming: return "SWM"; - case OlympicsAPI::Disciplines::AquaticsWaterPolo: return "WPO"; - case OlympicsAPI::Disciplines::Archery: return "ARC"; - case OlympicsAPI::Disciplines::Athletics: return "ATH"; - case OlympicsAPI::Disciplines::Badminton: return "BDM"; - case OlympicsAPI::Disciplines::Basketball3v3: return "BK3"; - case OlympicsAPI::Disciplines::Basketball: return "BKB"; - case OlympicsAPI::Disciplines::Boxing: return "BOX"; - case OlympicsAPI::Disciplines::Breaking: return "BKG"; - case OlympicsAPI::Disciplines::CanoeingSprint: return "CSP"; - case OlympicsAPI::Disciplines::CanoeingSlalom: return "CSL"; - case OlympicsAPI::Disciplines::CyclingBMXFreestyle: return "BMF"; - case OlympicsAPI::Disciplines::CyclingBMXRacing: return "BMX"; - case OlympicsAPI::Disciplines::CyclingMaountainBike: return "MTB"; - case OlympicsAPI::Disciplines::CyclingRoad: return "CRD"; - case OlympicsAPI::Disciplines::CyclingTrack: return "CTR"; - case OlympicsAPI::Disciplines::EquestrianDressage: return "EDR"; - case OlympicsAPI::Disciplines::EquestrianEventing: return "EVE"; - case OlympicsAPI::Disciplines::EquestrianJumping: return "EJP"; - case OlympicsAPI::Disciplines::Fencing: return "FEN"; - case OlympicsAPI::Disciplines::FieldHockey: return "HOC"; - case OlympicsAPI::Disciplines::Football: return "FBL"; - case OlympicsAPI::Disciplines::Golf: return "GLF"; - case OlympicsAPI::Disciplines::GymnasticsArtistic: return "GAR"; - case OlympicsAPI::Disciplines::GymnasticsRhythmic: return "GRY"; - case OlympicsAPI::Disciplines::GymnasticsTrampoline: return "GTR"; - case OlympicsAPI::Disciplines::HandballIndoor: return "HBL"; - case OlympicsAPI::Disciplines::Judo: return "JUD"; - case OlympicsAPI::Disciplines::ModernPentathlon: return "MPN"; - case OlympicsAPI::Disciplines::Rowing: return "ROW"; - case OlympicsAPI::Disciplines::Rugby7: return "RU7"; - case OlympicsAPI::Disciplines::Sailing: return "SAL"; - case OlympicsAPI::Disciplines::Shooting: return "SHO"; - case OlympicsAPI::Disciplines::Skateboarding: return "SKB"; - case OlympicsAPI::Disciplines::SportClimbing: return "CLB"; - case OlympicsAPI::Disciplines::Surfing: return "SRF"; - case OlympicsAPI::Disciplines::TableTennis: return "TTE"; - case OlympicsAPI::Disciplines::Taekwondo: return "TKW"; - case OlympicsAPI::Disciplines::Tennis: return "TEN"; - case OlympicsAPI::Disciplines::Triathlon: return "TRI"; - case OlympicsAPI::Disciplines::VolleyballBeach: return "VBV"; - case OlympicsAPI::Disciplines::VolleyballIndoor: return "VVO"; - case OlympicsAPI::Disciplines::Weightlifting: return "WLF"; - case OlympicsAPI::Disciplines::WrestlingFreestyle: return "WRE"; - case OlympicsAPI::Disciplines::WrestlingGrecoRoman: return "WRG"; - default: return "ARC"; // default, which should not be possible, because of enum - } -} -- cgit v1.2.3