Documentation for the Unreal C++ Plugin
Loading...
Searching...
No Matches
ApexTypes.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "ApexSDKDefines.h"
7#include "ApexJSON.h"
8#include "XAPITypes.h"
9#include "ApexTypes.generated.h"
10
11USTRUCT(BlueprintType)
12struct APEXSDK_API FJoinSessionData : public FJsonable
13{
16 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
17 FString Uuid = TEXT("");
18 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
19 FString EventType = TEXT("");
20 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
21 int ModuleId = -1;
22 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
23 FString DeviceId = TEXT("");
24 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
25 FString IpAddress = TEXT("");
26 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
27 FXAPIStatement JsonData;
28
29 virtual ~FJoinSessionData() {}
31 virtual TSharedPtr<FJsonObject> ToJsonObject() const
32 {
33 TSharedPtr<FJsonObject> Result(new FJsonObject);
34 if (!Uuid.IsEmpty())
35 {
36 Result->SetStringField("uuid", Uuid);
37 }
38
39 if (!EventType.IsEmpty())
40 {
41 Result->SetStringField("eventType", EventType);
42 }
43
44 Result->SetNumberField("moduleId", ModuleId);
45
46 if (!DeviceId.IsEmpty())
47 {
48 Result->SetStringField("deviceId", DeviceId);
49 }
50
51 if (!IpAddress.IsEmpty())
52 {
53 Result->SetStringField("ipAddress", IpAddress);
54 }
55
56 JsonData.Stamp();
57
58 if (!JsonData.IsEmpty())
59 {
60 Result->SetObjectField("jsonData", JsonData.ToJsonObject());
61 }
62
63 return Result;
64 }
65};
66
67USTRUCT(BlueprintType)
68struct APEXSDK_API FAPEXRequestFailed : public FJsonable
69{
71
72 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Failed Request")
73 bool Error = false;
74
75 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Failed Request")
76 FString HttpCode = TEXT("0");
77
78 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Failed Request")
79 FString Message = TEXT("");
80
82 {
83 // Create a default
84 Error = true;
85 HttpCode = TEXT("400");
86 Message = TEXT("There is a server connection error. Please check that there is a valid URL being used or check if APEX is down.");
87 }
88
89 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
90 {
91 if (JObject->HasField("Error"))
92 {
93 if (JObject->HasTypedField<EJson::Boolean>("Error"))
94 {
95 Error = JObject->GetBoolField("Error");
96 }
97 else
98 {
99 Error = true;
100 Message = JObject->GetStringField("error");
101 }
102 }
103
104 if (JObject->HasField("HttpCode"))
105 HttpCode = JObject->GetStringField("HttpCode");
106
107 if (JObject->HasField("Message"))
108 Message = JObject->GetStringField("Message");
109 }
110};
111
112USTRUCT(BlueprintType)
113struct APEXSDK_API FPSessionData : public FAPEXRequestFailed
116
117 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PixoVR|Platform|Session")
118 int SessionId = -1;
119
122 }
124 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
125 {
127
128 if (JObject->HasField("Data"))
129 {
130 const TSharedPtr<FJsonObject>& DataObject = JObject->GetObjectField("Data");
131 if (DataObject->HasField("SessionId"))
132 {
133 SessionId = DataObject->GetIntegerField("SessionId");
134 }
135 }
136 }
137};
138
139USTRUCT(BlueprintType)
140struct APEXSDK_API FSessionData : public FJsonable
141{
143
144public:
145 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
146 bool Complete = false;
147 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
148 bool Success = false;
149 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
150 float Score = 0.0f;
151 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
152 float ScoreScaled = 0.0f;
153 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
154 float ScoreMin = 0.0f;
155 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
156 float ScoreMax = 0.0f;
157 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
158 int Duration = 0;
159
160 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
161 FXAPIExtension AdditionalContextData;
162 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
163 FXAPIExtension AdditionalResultData;
164
165 virtual ~FSessionData() { }
166
168
169 FSessionData(bool InComplete, bool InSuccess, float InScore, float InScoreScaled,
170 float InScoreMin, float InScoreMax, int InDuration,
171 FXAPIExtension InContextExtension, FXAPIExtension InResultExtension)
172 : Complete(InComplete), Success(InSuccess), Score(InScore), ScoreScaled(InScoreScaled),
173 ScoreMin(InScoreMin), ScoreMax(InScoreMax), Duration(InDuration),
174 AdditionalContextData(InContextExtension), AdditionalResultData(InResultExtension)
175 { }
176
177 // TODO: Implement a FromJsonObject function. IMPORTANT TO DO!
178 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
179 {
180 Score = JObject->GetNumberField("score");
181 ScoreScaled = JObject->GetNumberField("scoreScaled");
182 ScoreMin = JObject->GetNumberField("scoreMin");
183 ScoreMax = JObject->GetNumberField("scoreMax");
184 Duration = JObject->GetNumberField("sessionDuration");
185 Complete = JObject->GetBoolField("success");
186 FString LessonStatus = JObject->GetStringField("lessonStatus");
187
188 if (LessonStatus.Equals("passed"))
189 {
190 Complete = true;
191 }
192 else
193 {
194 Complete = false;
195 }
196 }
197};
198
199USTRUCT(BlueprintType)
200struct APEXSDK_API FCompleteSessionData : public FJsonable
201{
203
204public:
205 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Complete Session")
206 FString Uuid = TEXT("");
207 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Complete Session")
208 FString EventType = TEXT("");
209 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Complete Session")
210 int ModuleId = -1;
211 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Complete Session")
212 FString DeviceId = TEXT("");
213 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Complete Session")
215
216 // TODO: This data will get packed into the FXAPIStatement instead of an extra layer
217 FSessionData SessionData;
218
219 virtual ~FCompleteSessionData() { }
221 // TODO: Implement a FromJsonObject function. IMPORTANT TO DO!
222 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
223 {
224 if (JObject->HasField("uuid"))
225 {
226 Uuid = JObject->GetStringField("uuid");
227 }
228
229 if (JObject->HasField("eventType"))
230 {
231 EventType = JObject->GetStringField("eventType");
233
234 ModuleId = JObject->GetNumberField("moduleId");
235
236 if (JObject->HasField("deviceId"))
237 {
238 DeviceId = JObject->GetStringField("deviceId");
239 }
240
241 if (JObject->HasField("jsonData"))
242 {
243 JsonData.FromJsonObject(JObject->GetObjectField("jsonData"));
244 SessionData.FromJsonObject(JObject->GetObjectField("jsonData"));
246 }
247
248 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
249 {
250 TSharedPtr<FJsonObject> Result(new FJsonObject);
252 if (!Uuid.IsEmpty())
254 Result->SetStringField("uuid", Uuid);
256
257 if (!EventType.IsEmpty())
258 {
259 Result->SetStringField("eventType", EventType);
260 }
261
262 Result->SetNumberField("moduleId", ModuleId);
263
264 if (!DeviceId.IsEmpty())
265 {
266 Result->SetStringField("deviceId", DeviceId);
267 }
268
269 // Update the time stamp
270 JsonData.Stamp();
271
272 if (!JsonData.IsEmpty())
273 {
274 TSharedPtr<FJsonObject> JsonDataObject = JsonData.ToJsonObject();
275 JsonDataObject->SetNumberField("score", SessionData.Score);
276 JsonDataObject->SetNumberField("scoreScaled", SessionData.ScoreScaled);
277 JsonDataObject->SetNumberField("scoreMin", SessionData.ScoreMin);
278 JsonDataObject->SetNumberField("scoreMax", SessionData.ScoreMax);
279 JsonDataObject->SetNumberField("sessionDuration", SessionData.Duration);
280 JsonDataObject->SetBoolField("success", SessionData.Success);
281 FString LessonStatus = "failed";
282 if (SessionData.Success)
283 {
284 LessonStatus = "passed";
285 }
286 JsonDataObject->SetStringField("lessonStatus", LessonStatus);
287 JsonDataObject->SetStringField("moduleName", FString::FromInt(ModuleId));
288
289 Result->SetObjectField("jsonData", JsonDataObject);
290 }
292 return Result;
294};
295
296USTRUCT(BlueprintType)
297struct APEXSDK_API FSessionEventData : public FJsonable
298{
300
301 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Event")
302 FString Uuid = TEXT("");
303 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Event")
304 FString EventType = TEXT("");
305 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Event")
306 int ModuleId = -1;
307 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Event")
308 FString DeviceId = TEXT("");
309 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Event")
310 FXAPIStatement JsonData;
311
312public:
313 virtual ~FSessionEventData() { }
314
315 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
316 {
317 TSharedPtr<FJsonObject> Result(new FJsonObject);
318
319 if (!Uuid.IsEmpty())
320 {
321 Result->SetStringField("uuid", Uuid);
322 }
323
324 if (!EventType.IsEmpty())
326 Result->SetStringField("eventType", EventType);
327 }
329 Result->SetNumberField("moduleId", ModuleId);
331 if (!DeviceId.IsEmpty())
332 {
333 Result->SetStringField("deviceId", DeviceId);
334 }
335
336 // Update the time stamp
337 JsonData.Stamp();
338
339 if (!JsonData.IsEmpty())
340 {
341 Result->SetObjectField("jsonData", JsonData.ToJsonObject());
342 }
343
344 return Result;
345 }
346};
347
348USTRUCT(BlueprintType)
349struct APEXSDK_API FAPEXOrganization : public FJsonable
350{
352
353 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Apex Org")
354 int ID = -1;
355 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Apex Org")
356 FString Name = TEXT("");
357 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Apex Org")
358 FString Status = TEXT("");
360public:
361 virtual ~FAPEXOrganization() { }
362
363 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
364 {
365 ID = JObject->GetIntegerField("ID");
366 Name = JObject->GetStringField("Name");
367 Status = JObject->GetStringField("Status");
368 }
369
370 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
371 {
372 TSharedPtr<FJsonObject> Result(new FJsonObject);
373
374 Result->SetNumberField("ID", ID);
375 Result->SetStringField("Name", Name);
376 Result->SetStringField("Status", Status);
377
378 return Result;
379 }
380};
381
382USTRUCT(BlueprintType)
383struct APEXSDK_API FUserSessionData : public FJsonable
384{
386
387 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
388 int ID = -1;
389 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
390 int OrgId = -1;
391 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
392 int OrgUnit = -1;
393 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
394 FString FirstName = TEXT("");
395 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
396 FString LastName = TEXT("");
397 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
398 FString Email = TEXT("");
399 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
400 FString SessionToken = TEXT("");
401 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
402 FAPEXOrganization Organization;
403
404public:
405 virtual ~FUserSessionData() { }
406
407 bool IsSet()
408 {
409 return (!SessionToken.IsEmpty());
410 }
412 void Invalidate()
414 SessionToken = TEXT("");
415 }
416
417 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
418 {
419 ID = JObject->GetIntegerField("ID");
420 OrgId = JObject->GetIntegerField("OrgId");
421 if (JObject->HasField("OrgUnit"))
422 {
423 OrgUnit = JObject->GetIntegerField("OrgUnit");
424 }
425 else
427 OrgUnit = -1;
428 }
429 FirstName = JObject->GetStringField("First");
430 LastName = JObject->GetStringField("Last");
431 Email = JObject->GetStringField("Email");
432 SessionToken = JObject->GetStringField("Token");
433 Organization.FromJsonObject(JObject->GetObjectField("Org"));
434 }
435
436 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
437 {
438 TSharedPtr<FJsonObject> Result(new FJsonObject);
439
440 Result->SetNumberField("ID", ID);
441 Result->SetNumberField("OrgId", OrgId);
442 if (OrgUnit >= 0)
443 {
444 Result->SetNumberField("OrgUnit", OrgUnit);
445 }
446 Result->SetStringField("First", FirstName);
447 Result->SetStringField("Last", LastName);
448 Result->SetStringField("Email", Email);
449 Result->SetStringField("Token", SessionToken);
450 Result->SetObjectField("Org", Organization.ToJsonObject());
451
452 return Result;
453 }
454};
455
456USTRUCT(BlueprintType)
457struct APEXSDK_API FApexUserData : public FJsonable
458{
460
461 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Data")
462 int Id = -1;
463
464 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Data")
465 int OrgUnit = -1;
466
467 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Data")
468 FString FirstName = TEXT("");
469
470 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Data")
471 FString LastName = TEXT("");
472
473 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Data")
474 FString Email = TEXT("");
475
476 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Data")
477 FString Username = TEXT("");
478
479 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
480 {
481 Id = JObject->GetIntegerField("id");
482 if (JObject->HasField("orgunit"))
483 {
484 OrgUnit = JObject->GetIntegerField("orgunit");
485 }
486 else
487 {
488 OrgUnit = -1;
489 }
490 FirstName = JObject->GetStringField("first");
491 LastName = JObject->GetStringField("last");
492 Email = JObject->GetStringField("email");
493 Username = JObject->GetStringField("username");
494 }
496 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
497 {
498 TSharedPtr<FJsonObject> Result(new FJsonObject);
499
500 Result->SetNumberField("id", Id);
501 if (OrgUnit >= 0)
502 {
503 Result->SetNumberField("orgunit", OrgUnit);
504 }
505 Result->SetStringField("first", FirstName);
506 Result->SetStringField("last", LastName);
507 Result->SetStringField("email", Email);
508 Result->SetStringField("username", Username);
509
510 return Result;
511 }
513
514USTRUCT(BlueprintType)
515struct APEXSDK_API FSessionReportData : public FJsonable
516{
518
519 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
520 FString Id = TEXT("");
521 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
522 FString EventType = TEXT("");
523 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
524 int UserId = -1;
525 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
526 int ModuleId = -1;
527 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
528 int SessionId = -1;
529 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
530 float SessionDuration = 0.0f;
531 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
532 bool LessonStatus = false;
533 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
534 FString CreatedAt = TEXT("");
535 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
536 FString UpdatedAt = TEXT("");
537 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
538 FXAPIStatement JsonData;
539
540 virtual ~FSessionReportData() { }
541
542 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
543 {
544 if (JObject->HasField("id"))
545 {
546 Id = JObject->GetStringField("id");
547 }
548
549 if (JObject->HasField("eventType"))
551 EventType = JObject->GetStringField("eventType");
552 }
553
554 if (JObject->HasField("sessionId"))
555 {
556 SessionId = JObject->GetNumberField("sessionId");
557 }
558
559 if (JObject->HasField("userId"))
560 {
561 UserId = JObject->GetNumberField("userId");
563
564 if (JObject->HasField("moduleId"))
565 {
566 ModuleId = JObject->GetNumberField("moduleId");
567 }
569 if (JObject->HasField("createdAt"))
570 {
571 CreatedAt = JObject->GetStringField("createdAt");
572 }
573
574 if (JObject->HasField("updatedAt"))
575 {
576 UpdatedAt = JObject->GetStringField("updatedAt");
577 }
578
579 if (JObject->HasField("jsonData"))
581 TSharedPtr<FJsonObject> JsonDataObject = JObject->GetObjectField("jsonData");
582 JsonData.FromJsonObject(JsonDataObject);
583 if (JsonDataObject->HasField("sessionDuration"))
584 {
585 SessionDuration = JsonDataObject->GetNumberField("sessionDuration");
587
588 if (JsonDataObject->HasField("lessonStatus"))
590 LessonStatus = JsonDataObject->GetBoolField("lessonStatus");
592 }
593 }
594};
595
596USTRUCT(BlueprintType)
597struct APEXSDK_API FTopTenData : public FJsonable
598{
600
601 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Top Ten Data")
602 bool Error = false;
603 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Top Ten Data")
604 FString Message = TEXT("");
605 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Top Ten Data")
606 FApexUserData User;
607 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Top Ten Data")
608 TArray<FSessionReportData> Sessions;
609
610public:
611 virtual ~FTopTenData() { }
612
613 virtual void FromJsonObject(const TSharedPtr<FJsonObject>& JObject) override
614 {
615 Error = JObject->GetBoolField("error");
616 Message = JObject->GetStringField("message");
617
618 TArray<TSharedPtr<FJsonValue>> SessionDataArray;
619 // This confirms if it's a user with session data or just session data
620 if (JObject->HasTypedField<EJson::Array>("data"))
621 {
622 SessionDataArray = JObject->GetArrayField("data");
623 }
624 else
625 {
626 auto DataObject = JObject->GetObjectField("data");
627
628 User.FromJsonObject(DataObject->GetObjectField("user"));
629 SessionDataArray = DataObject->GetArrayField("sessions");
630 }
631
632 FSessionReportData CompleteSessionData;
633 for (auto SessionData : SessionDataArray)
634 {
635 CompleteSessionData.FromJsonObject(SessionData->AsObject());
636
637 Sessions.Push(CompleteSessionData);
638 }
639 }
640
641 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
642 {
643 TSharedPtr<FJsonObject> Result(new FJsonObject);
645 // TODO (MGruber): Fill this in later. It's not super important right now.
647 return Result;
648 }
649};
650
651USTRUCT(BlueprintType)
652struct APEXSDK_API FHeartbeatEvent : public FJsonable
655
656 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PixoVR|Hearbeat Event")
657 int SessionId;
658
659public:
660 virtual ~FHeartbeatEvent() { }
661
662 virtual TSharedPtr<FJsonObject> ToJsonObject() const override
663 {
664 TSharedPtr<FJsonObject> Result(new FJsonObject);
665
666 Result->SetNumberField("sessionId", SessionId);
668 return Result;
669 }
670};
#define Error(pmt,...)
Definition ApexAPI.cpp:16
USTRUCT(BlueprintType)
Definition ApexTypes.h:487
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:519
virtual ~FAPEXOrganization()
Definition ApexTypes.h:510
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:512
USTRUCT(BlueprintType)
Definition ApexTypes.h:99
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:131
USTRUCT(BlueprintType)
Definition ApexTypes.h:645
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:707
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:690
USTRUCT(BlueprintType)
Definition ApexTypes.h:292
virtual ~FCompleteSessionData()
Definition ApexTypes.h:330
FXAPIStatement JsonData
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Complete Session")
Definition ApexTypes.h:325
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:359
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:333
FSessionData SessionData
Definition ApexTypes.h:328
USTRUCT(BlueprintType)
Definition ApexTypes.h:929
virtual ~FHeartbeatEvent()
Definition ApexTypes.h:940
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:942
int SessionId
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "PixoVR|Hearbeat Event")
Definition ApexTypes.h:937
USTRUCT(BlueprintType)
Definition ApexTypes.h:16
virtual TSharedPtr< FJsonObject > ToJsonObject() const
Definition ApexTypes.h:58
FXAPIStatement JsonData
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Join Session")
Definition ApexTypes.h:54
virtual ~FJoinSessionData()
Definition ApexTypes.h:56
USTRUCT()
Definition ApexJSON.h:13
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject)
Definition ApexJSON.h:18
virtual TSharedPtr< FJsonObject > ToJsonObject() const
Definition ApexJSON.h:23
USTRUCT(BlueprintType)
Definition ApexTypes.h:159
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:173
USTRUCT(BlueprintType)
Definition ApexTypes.h:193
float Score
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:214
float ScoreMin
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:226
float ScoreScaled
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:220
float ScoreMax
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:232
virtual ~FSessionData()
Definition ApexTypes.h:253
int Duration
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:238
FXAPIExtension AdditionalContextData
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:245
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:266
FXAPIExtension AdditionalResultData
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:251
FSessionData(bool InComplete, bool InSuccess, float InScore, float InScoreScaled, float InScoreMin, float InScoreMax, int InDuration, FXAPIExtension InContextExtension, FXAPIExtension InResultExtension)
Definition ApexTypes.h:257
bool Success
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Data")
Definition ApexTypes.h:208
USTRUCT(BlueprintType)
Definition ApexTypes.h:412
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:449
FXAPIStatement JsonData
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Event")
Definition ApexTypes.h:444
virtual ~FSessionEventData()
Definition ApexTypes.h:447
USTRUCT(BlueprintType)
Definition ApexTypes.h:730
virtual ~FSessionReportData()
Definition ApexTypes.h:794
FXAPIStatement JsonData
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Session Report")
Definition ApexTypes.h:792
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:796
USTRUCT(BlueprintType)
Definition ApexTypes.h:855
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:914
TArray< FSessionReportData > Sessions
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Top Ten Data")
Definition ApexTypes.h:881
virtual ~FTopTenData()
Definition ApexTypes.h:884
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:886
FApexUserData User
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|Top Ten Data")
Definition ApexTypes.h:875
USTRUCT(BlueprintType)
Definition ApexTypes.h:536
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition ApexTypes.h:601
virtual ~FUserSessionData()
Definition ApexTypes.h:589
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition ApexTypes.h:620
FAPEXOrganization Organization
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Apex|User Session Data")
Definition ApexTypes.h:586
USTRUCT(BlueprintType)
USTRUCT(BlueprintType)
Definition XAPITypes.h:1157
virtual bool IsEmpty() const override
Definition XAPITypes.cpp:60
virtual void FromJsonObject(const TSharedPtr< FJsonObject > &JObject) override
Definition XAPITypes.cpp:66
void Stamp() const
Definition XAPITypes.cpp:47
virtual TSharedPtr< FJsonObject > ToJsonObject() const override
Definition XAPITypes.cpp:89