/* Fannyapp - Application to view the cover plan of the Fanny-Leicht-Gymnasium ins Stuttgart Vaihingen, Germany Copyright (C) 2019 Itsblue Development This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ #ifndef SERVERCONN_H #define SERVERCONN_H #include #include #include #include #include #include #include #include #include #include "headers/appsettings.h" #ifdef Q_OS_ANDROID #include #endif typedef struct strReturnData{ int status_code; QString text; }ReturnData_t; class ServerConn : public QObject { Q_OBJECT Q_PROPERTY(QString state READ getState NOTIFY stateChanged) private: QString state; // can be: loggedIn ; notLoggedIn QString username; QString password; ReturnData_t senddata(QUrl serviceUrl, QUrlQuery postData); QList apiVersion = {0,2,1}; private slots: void setState(QString state); public: explicit ServerConn(QObject *parent = nullptr); ~ServerConn(); public slots: Q_INVOKABLE int login(QString username, QString password, bool permanent); Q_INVOKABLE int logout(); Q_INVOKABLE int getFoodPlan(); Q_INVOKABLE int getEvents(QString day); Q_INVOKABLE QString getState(); signals: void stateChanged(QString newState); public: QList m_weekplan; QList m_events; }; extern ServerConn * pGlobalServConn; #endif // SERVERCONN_H