Vesna
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
QadraMessageData.h
Go to the documentation of this file.
1 #ifndef QADRAMESSAGEDATA_H
2 #define QADRAMESSAGEDATA_H
3 
4 #include <QString>
5 #include <QStringList>
6 #include <QJsonArray>
7 #include <QJsonObject>
9 
11 {
12 public:
13  unsigned int mId;
14  QString mMessage;
15  long mLatitude;
16  long mLongitude;
17  long mAltitude;
18  long mSpeed;
20  int mType;
21  int mSent;
22  QString mDeviceSNR;
23  int mInv;
24 
26  {
27  mMessage.clear();
28  mId = 0;
29  mLatitude = mLongitude = mSatellites = 0;
30  mAltitude = mSpeed = 0;
31  mType = mSent = 0;
32  mDeviceSNR.clear();
33  mInv = 0;
34  }
35 
36  QJsonObject ToJsonObject() const
37  {
38  QJsonObject jsonObject;
39  jsonObject.insert( DATABASE_COLUMN_ID, ( double )mId );
40  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_MESSAGE, mMessage );
41  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_LATITUDE, ( double )mLatitude );
42  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_LONGITUDE, ( double )mLongitude );
43  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_ALTITUDE, ( double )mAltitude );
44  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_SPEED, ( double )mSpeed );
45  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_SATELLITES, ( double )mSatellites );
46  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_TYPE, ( double )mType );
47  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_DEVICE_SNR, mDeviceSNR );
48  jsonObject.insert( QADRA_MESSAGES_JSON_REQUEST_ITEM_INV, ( double ) mInv );
49  return jsonObject;
50  }
51 
52  void FromJsonObject( const QJsonObject &object )
53  {
54  mId = object.value( DATABASE_COLUMN_ID ).toInt();
55  mMessage = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_MESSAGE ).toString();
56  mLatitude = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_LATITUDE ).toInt();
57  mLongitude = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_LONGITUDE ).toInt();
58  mAltitude = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_ALTITUDE ).toInt();
59  mSpeed = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_SPEED ).toInt();
60  mSatellites = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_SATELLITES ).toInt();
61  mType = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_TYPE ).toInt();
62  mSent = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_SENT ).toInt();
63  mDeviceSNR = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_DEVICE_SNR ).toString();
64  mInv = object.value( QADRA_MESSAGES_JSON_REQUEST_ITEM_INV ).toInt();
65  }
66 };
67 
69 {
70  const QString JSON_RESPONSE_ITEM_STATUS_CODE = "statusCode";
71  const QString JSON_RESPONSE_ITEM_ERROR_CODE = "errorCode";
72  const QString JSON_RESPONSE_ITEM_ERROR_MESSAGE = "errorMessage";
73 
74  const QString JSON_RESPONSE_ITEM_PROCESSED_ID = "processedId";
75  const QString JSON_RESPONSE_ITEM_ERRORS = "errors";
76  const QString JSON_RESPONSE_ITEM_NEW_OBU_COUNT = "newOBUCount";
77  const QString JSON_RESPONSE_ITEM_SUCCESS_COUNT = "successCount";
78  const QString JSON_RESPONSE_ITEM_ROW_ID = "rowId";
79  const QString JSON_RESPONSE_ITEM_ROW_ORDER = "rowOrder";
80 
81 public:
82  enum ErrorCode
83  {
84  Success = 0,
85  NoContentError = 20401,
86  BadRequestError = 40000,
94  OBUNotFound = 40008,
97  };
98 
100  {
101  Unknown = 0,
102  OK = 200,
103  NoContent = 204,
104  BadRequest = 400,
106  Forbiden = 403,
108  };
109 
111  {
114  QString mErrorMessage;
115  int mRowId;
117 
119  {
120  mStatusCode = Unknown;
121  mErrorCode = Success;
122  mErrorMessage = "";
123  mRowId = 0;
124  mRowOrder = 0;
125  }
126  };
127 
129 
130  QStringList mProcessedId;
131  ErrorResponseList mErrors;
132 
134  {
135  mProcessedId.clear();
136  mErrors.clear();
137  }
138 
140  {
141  mProcessedId = response.mProcessedId;
142  mErrors = response.mErrors;
143  }
144 
145  QadraMessageDataResponse( const QJsonObject &jsonObject ) : QadraMessageDataResponse()
146  {
147  FromJsonObject( jsonObject );
148  }
149 
150  void FromJsonObject( const QJsonObject &jsonObject )
151  {
152  if ( ( jsonObject.contains( JSON_RESPONSE_ITEM_PROCESSED_ID ) ) && ( jsonObject[ JSON_RESPONSE_ITEM_PROCESSED_ID ].isArray() == true ) )
153  {
154  QJsonArray array = jsonObject[ JSON_RESPONSE_ITEM_PROCESSED_ID ].toArray();
155  foreach ( QJsonValue value, array )
156  {
157  unsigned int id = value.toDouble();
158  mProcessedId.push_back( QString::number( id ) );
159  }
160  }
161 
162  if ( ( jsonObject.contains( JSON_RESPONSE_ITEM_ERRORS ) ) && ( jsonObject[ JSON_RESPONSE_ITEM_ERRORS ].isArray() == true ) )
163  {
164  QJsonArray array = jsonObject[ JSON_RESPONSE_ITEM_ERRORS ].toArray();
165  foreach( QJsonValue value, array )
166  {
167  if ( value.isObject() == false )
168  {
169  continue;
170  }
171 
172  ErrorResponse errorResponse;
173  QJsonObject jsonObject = value.toObject();
174 
175  if ( jsonObject.contains( JSON_RESPONSE_ITEM_STATUS_CODE ) == true )
176  {
177  errorResponse.mStatusCode = static_cast< StatusCode >( jsonObject[ JSON_RESPONSE_ITEM_STATUS_CODE ].toInt() );
178  }
179  if ( jsonObject.contains( JSON_RESPONSE_ITEM_ERROR_CODE ) == true )
180  {
181  errorResponse.mErrorCode = static_cast< ErrorCode >( jsonObject[ JSON_RESPONSE_ITEM_ERROR_CODE ].toInt() );
182  }
183  if ( jsonObject.contains( JSON_RESPONSE_ITEM_ERROR_MESSAGE ) == true )
184  {
185  errorResponse.mErrorMessage = jsonObject[ JSON_RESPONSE_ITEM_ERROR_MESSAGE ].toString();
186  }
187  if ( jsonObject.contains( JSON_RESPONSE_ITEM_ROW_ID ) == true )
188  {
189  errorResponse.mRowId = jsonObject[ JSON_RESPONSE_ITEM_ROW_ID ].toInt();
190  }
191  if ( jsonObject.contains( JSON_RESPONSE_ITEM_ROW_ORDER ) == true )
192  {
193  errorResponse.mRowOrder = jsonObject[ JSON_RESPONSE_ITEM_ROW_ORDER ].toInt();
194  }
195 
196  mErrors.push_back( errorResponse );
197  }
198  }
199  }
200 
201  bool IsValid()
202  {
203  if ( mProcessedId.size() == 0 )
204  {
205  return false;
206  }
207  return true;
208  }
209 
210  QString ToString() const
211  {
212  ErrorResponse errorResponse = mErrors.size() > 0 ? mErrors[ 0 ] : ErrorResponse();
213  return QString( "ErrorCode: %1 | StatusCode: %2 | ErrorMessage: %3" ).arg( errorResponse.mErrorCode ).arg( errorResponse.mStatusCode ).arg( errorResponse.mErrorMessage );
214  }
215 
216  QString JoinMessageIDs() const
217  {
218  QString join( "" );
219 
220  if ( mProcessedId.size() > 0 )
221  {
222  join = mProcessedId.join( ", " );
223  }
224 
225  return join;
226  }
227 };
228 
229 #endif // QADRAMESSAGEDATA_H
long mLatitude
Definition: QadraMessageData.h:15
void FromJsonObject(const QJsonObject &object)
Definition: QadraMessageData.h:52
int mRowOrder
Definition: QadraMessageData.h:116
Definition: QadraMessageData.h:110
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_SATELLITES
Definition: ModelQadraMessages.h:28
int mType
Definition: QadraMessageData.h:20
QadraMessageDataResponse(const QJsonObject &jsonObject)
Definition: QadraMessageData.h:145
Definition: QadraMessageData.h:107
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_SENT
Definition: ModelQadraMessages.h:30
Definition: QadraMessageData.h:10
Definition: QadraMessageData.h:104
int mRowId
Definition: QadraMessageData.h:115
Definition: QadraMessageData.h:101
ErrorResponseList mErrors
Definition: QadraMessageData.h:131
long mLongitude
Definition: QadraMessageData.h:16
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_ALTITUDE
Definition: ModelQadraMessages.h:27
QJsonObject ToJsonObject() const
Definition: QadraMessageData.h:36
Definition: QadraMessageData.h:103
Definition: QadraMessageData.h:86
Definition: QadraMessageData.h:91
QString mMessage
Definition: QadraMessageData.h:14
const QString DATABASE_COLUMN_ID
Definition: Model.h:7
QadraMessageDataResponse()
Definition: QadraMessageData.h:133
long mSpeed
Definition: QadraMessageData.h:18
Definition: QadraMessageData.h:84
QString ToString() const
Definition: QadraMessageData.h:210
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_MESSAGE
Definition: ModelQadraMessages.h:23
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_SPEED
Definition: ModelQadraMessages.h:26
StatusCode mStatusCode
Definition: QadraMessageData.h:112
long mSatellites
Definition: QadraMessageData.h:19
QString JoinMessageIDs() const
Definition: QadraMessageData.h:216
Definition: QadraMessageData.h:89
Definition: QadraMessageData.h:106
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_INV
Definition: ModelQadraMessages.h:32
void FromJsonObject(const QJsonObject &jsonObject)
Definition: QadraMessageData.h:150
QString mDeviceSNR
Definition: QadraMessageData.h:22
QadraMessageDataResponse(const QadraMessageDataResponse &response)
Definition: QadraMessageData.h:139
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_DEVICE_SNR
Definition: ModelQadraMessages.h:31
long mAltitude
Definition: QadraMessageData.h:17
QList< ErrorResponse > ErrorResponseList
Definition: QadraMessageData.h:128
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_LATITUDE
Definition: ModelQadraMessages.h:24
QadraMessageDataRequest()
Definition: QadraMessageData.h:25
Definition: QadraMessageData.h:92
QStringList mProcessedId
Definition: QadraMessageData.h:130
bool IsValid()
Definition: QadraMessageData.h:201
int mInv
Definition: QadraMessageData.h:23
Definition: QadraMessageData.h:85
ErrorCode
Definition: QadraMessageData.h:82
ErrorResponse()
Definition: QadraMessageData.h:118
unsigned int mId
Definition: QadraMessageData.h:13
Definition: QadraMessageData.h:105
QString mErrorMessage
Definition: QadraMessageData.h:114
Definition: QadraMessageData.h:68
Definition: QadraMessageData.h:90
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_TYPE
Definition: ModelQadraMessages.h:29
ErrorCode mErrorCode
Definition: QadraMessageData.h:113
StatusCode
Definition: QadraMessageData.h:99
Definition: QadraMessageData.h:93
int mSent
Definition: QadraMessageData.h:21
Definition: QadraMessageData.h:87
Definition: QadraMessageData.h:94
const QString QADRA_MESSAGES_JSON_REQUEST_ITEM_LONGITUDE
Definition: ModelQadraMessages.h:25
Definition: QadraMessageData.h:102