modification in client def
[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 //{"postal_address":"201 Mission Street","loc":"37.7914374,-122.3950694","country":"USA","mail":"bjensen@example.com",
15 //"city":"San Francisco","graphEmail":"bjensen@example.com","graphPreferredLanguage":"en","ccNumberMasked":"************1212",
16 //"ccExpYear":"19","description":"Original description","ccExpMonth":"01","groups":[],"last_name":"Jensen"
17 //"ccNumber":"123-1111-2222-3333-1212","house_identifier":"ForgeRock","phone":"+1 408 555 1862","name":"bjensen"
18 //"state":"CA","fax":"+1 408 555 1862","common_name":"Barbara Jensen","postal_code":"94105","first_name":"Barbara","keytoken":"EB:7C:23:C6:21:BF"}
19 struct User {
20     QString postal_address;
21     QPointF loc;
22     QString country;
23     QString mail;
24     QString city;
25     QString graphEmail;
26     QString graphPreferredLanguage;
27     QString ccNumberMasked;
28     QString ccExpYear;
29     QString description;
30     QString ccExpMonth;
31     QStringList groups;
32     QString last_name;
33     QString ccNumber;
34     QString house_identifier;
35     QString phone;
36     QString name;
37     QString state;
38     QString fax;
39     QString common_name;
40     QString postal_code;
41     QString first_name;
42     QString keytoken;
43 };
44
45 class UserManagement : public QObject
46 {
47     Q_OBJECT
48 public:
49     explicit UserManagement(QObject *root);
50
51 signals:
52
53 public slots:
54     void connectWebsockets();
55     void onConnected();
56     void onClosed();
57     void onTextMessageReceived(QString message);
58     void onWebSocketError(QAbstractSocket::SocketError);
59     void slot_sendData();
60 #ifndef REAL_SERVER
61     void onServerNewConnection();
62     void onServerClosed();
63     void processBinaryMessage(QByteArray message);
64     void processTextMessage(QString message);
65     void serverSocketDisconnected();
66     void slot_timerTest();
67 #endif
68 private:
69     QObject *home;
70     QObject *shortcutArea;
71     QObject *statusArea;
72     QObject *logo;
73     QByteArray data;
74     ApplicationModel *appModel;
75     QWebSocket webSocket;
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