1b1427d852caa9f6a700bac0c5545109d70b5b0b
[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 ccExpMonth;
25     QString description;
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 common_name;
34     QString fax;
35     QString postal_code;
36     QString first_name;
37     QString keytoken;
38 };
39
40 class UserManagement : public QObject
41 {
42     Q_OBJECT
43 public:
44     explicit UserManagement(QObject *root);
45
46 signals:
47
48 public slots:
49     void connectWebsockets();
50     void onConnected();
51     void onClosed();
52     void onTextMessageReceived(QString message);
53     void onWebSocketError(QAbstractSocket::SocketError);
54     void slot_sendData();
55 #ifndef REAL_SERVER
56     void onServerNewConnection();
57     void onServerClosed();
58     void processBinaryMessage(QByteArray message);
59     void processTextMessage(QString message);
60     void serverSocketDisconnected();
61     void slot_timerTest();
62 #endif
63 private:
64     QObject *home;
65     QObject *shortcutArea;
66     QObject *statusArea;
67     QObject *logo;
68     QByteArray data;
69     ApplicationModel *appModel;
70     QWebSocket webSocket;
71     int sequence;
72     bool jsonToMap(const QByteArray &buf, QVariantMap *map) const;
73     bool mapToJson(const QVariantMap &map, QByteArray *json) const;
74     bool jsonToList(const QByteArray &buf, QList<QVariant> *list) const;
75     bool listToJson(const QList<QVariant> &list, QByteArray *json) const;
76     void setUser(const User &user);
77 #ifndef REAL_SERVER
78     QTimer timerTest;
79     QWebSocket *pSocket;
80     QWebSocketServer *webSocketServer;
81     void launchServer();
82 #endif
83 };
84
85 #endif // USERMANAGEMENT_H