60 lines
2.1 KiB
Plaintext
60 lines
2.1 KiB
Plaintext
#include "script_component.hpp"
|
|
|
|
PREP_RECOMPILE_START;
|
|
#include "XEH_PREP.hpp"
|
|
PREP_RECOMPILE_END;
|
|
|
|
// private _category = [QUOTE(MOD_NAME), LLSTRING(displayName)];
|
|
|
|
[QGVAR(requestCategory), {
|
|
params [["_uid", "", [""]], ["_category", "", [""]]];
|
|
|
|
if (_uid isEqualTo "" || { _category isEqualTo "" }) exitWith {
|
|
diag_log "[FORGE:Server:Store] Invalid category request payload."
|
|
};
|
|
|
|
private _player = [_uid] call EFUNC(common,getPlayer);
|
|
if (_player isEqualTo objNull) exitWith {};
|
|
|
|
if (isNil QGVAR(StoreCatalogService)) exitWith {
|
|
diag_log "[FORGE:Server:Store] Store catalog service is unavailable."
|
|
};
|
|
|
|
private _result = GVAR(StoreCatalogService) call ["buildCategoryResponse", [_category]];
|
|
[CRPC(store,responseCategory), [_result], _player] call CFUNC(targetEvent);
|
|
}] call CFUNC(addEventHandler);
|
|
|
|
[QGVAR(requestHydrateStore), {
|
|
params [["_uid", "", [""]], ["_bridgeEvent", "store::hydrate", [""]]];
|
|
|
|
if (_uid isEqualTo "") exitWith {
|
|
diag_log "[FORGE:Server:Store] Invalid hydrate request payload."
|
|
};
|
|
|
|
if !(_bridgeEvent in ["store::hydrate", "store::config::hydrate"]) then {
|
|
_bridgeEvent = "store::hydrate";
|
|
};
|
|
|
|
private _player = [_uid] call EFUNC(common,getPlayer);
|
|
if (_player isEqualTo objNull) exitWith {};
|
|
|
|
private _payload = GVAR(StorefrontStore) call ["buildHydratePayload", [_uid]];
|
|
if (_payload isEqualTo createHashMap) exitWith {};
|
|
|
|
[CRPC(store,responseHydrateStore), [_payload, _bridgeEvent], _player] call CFUNC(targetEvent);
|
|
}] call CFUNC(addEventHandler);
|
|
|
|
[QGVAR(requestCheckout), {
|
|
params [["_uid", "", [""]], ["_payloadJson", "", [""]]];
|
|
|
|
if (_uid isEqualTo "" || { _payloadJson isEqualTo "" }) exitWith {
|
|
diag_log "[FORGE:Server:Store] Invalid checkout request payload."
|
|
};
|
|
|
|
private _player = [_uid] call EFUNC(common,getPlayer);
|
|
if (_player isEqualTo objNull) exitWith {};
|
|
|
|
private _result = GVAR(StorefrontStore) call ["checkout", [_uid, _player, _payloadJson]];
|
|
[CRPC(store,responseCheckout), [_result], _player] call CFUNC(targetEvent);
|
|
}] call CFUNC(addEventHandler);
|