Add logout button in home screen
[staging/HomeScreen.git] / HomeScreen / src2 / usermanagement.h
1 #ifndef USERMANAGEMENT_H
2 #define USERMANAGEMENT_H
3
4 #define REAL_SERVER "ws://localhost:1212/api?token=hello"
5
6 #include <QObject>
7 #include "applicationmodel.h"
8 #include <QTimer>
9 #include <QPointF>
10 #include <QtWebSockets/QWebSocket>
11 #ifndef REAL_SERVER
12 #include <QtWebSockets/QWebSocketServer>
13 #endif
14 struct User {
15     QString postal_address;
16     QPointF loc;
17     QString country;
18     QString mail;
19     QString city;
20     QString graphEmail;
21     QString graphPreferredLanguage;
22     QString ccNumberMasked;
23     QString ccExpYear;
24     QString description;
25     QString ccExpMonth;
26     QStringList groups;
27     QString last_name;
28     QString ccNumber;
29     QString house_identifier;
30     QString phone;
31     QString name;
32     QString state;
33     QString fax;
34     QString common_name;
35     QString postal_code;
36     QString first_name;
37     QString keytoken;
38     QStringList graphActions;
39 };
40
41 class UserManagement : public QObject
42 {
43     Q_OBJECT
44 public:
45     explicit UserManagement(QObject *root);
46
47 signals:
48
49 public slots:
50     void connectWebsockets();
51     void onConnected();
52     void onClosed();
53     void onTextMessageReceived(QString message);
54     void onWebSocketError(QAbstractSocket::SocketError);
55     void slot_sendData();
56 #ifndef REAL_SERVER
57     void onServerNewConnection();
58     void onServerClosed();
59     void processBinaryMessage(QByteArray message);
60     void processTextMessage(QString message);
61     void serverSocketDisconnected();
62     void slot_timerTest();
63 #endif
64     void slot_turnOffRed();
65     void slot_disconnect();
66 private:
67     QObject *home;
68     QObject *shortcutArea;
69     QObject *statusArea;
70     QObject *logo;
71     QByteArray data;
72     ApplicationModel *appModel;
73     QWebSocket webSocket;
74     QTimer timerRed;
75     bool isRed;
76     int sequence;
77     bool jsonToMap(const QByteArray &buf, QVariantMap *map) const;
78     bool mapToJson(const QVariantMap &map, QByteArray *json) const;
79     bool jsonToList(const QByteArray &buf, QList<QVariant> *list) const;
80     bool listToJson(const QList<QVariant> &list, QByteArray *json) const;
81     void setUser(const User &user);
82 #ifndef REAL_SERVER
83     QTimer timerTest;
84     QWebSocket *pSocket;
85     QWebSocketServer *webSocketServer;
86     void launchServer();
87 #endif
88 };
89
90 #endif // USERMANAGEMENT_H