202 lines
7 KiB
TypeScript
202 lines
7 KiB
TypeScript
// Module ID: 9410
|
|
// Function ID: 73454
|
|
// Name: trackRoundtrip
|
|
// Dependencies: [6, 7, 4223, 5932, 653, 5691, 675, 5909, 5694, 5947, 2]
|
|
|
|
// Module 9410 (trackRoundtrip)
|
|
import expandLocation from "expandLocation";
|
|
import getDeviceMetadata from "getDeviceMetadata";
|
|
import _isNativeReflectConstruct from "_isNativeReflectConstruct";
|
|
import closure_6 from "_isNativeReflectConstruct";
|
|
import { AnalyticEvents } from "ME";
|
|
|
|
const require = arg1;
|
|
function trackRoundtrip(apiResponseTimestamp) {
|
|
if (Math.random() <= 0.1) {
|
|
let diff = null;
|
|
if (null != apiResponseTimestamp.apiResponseTimestamp) {
|
|
diff = apiResponseTimestamp.apiResponseTimestamp - apiResponseTimestamp.initialSendTimestamp;
|
|
}
|
|
let obj = require(5691) /* receiveNetworkInfoformation */;
|
|
const signalStrength = obj.getSignalStrength();
|
|
obj = {};
|
|
const merged = Object.assign(importDefault(5909)());
|
|
obj["endpoint"] = apiResponseTimestamp.endpoint;
|
|
obj["was_successful"] = apiResponseTimestamp.wasSuccessful;
|
|
obj["api_latency_ms"] = diff;
|
|
obj["mobile_network_type"] = type.getType();
|
|
let tmp10 = null != signalStrength;
|
|
if (tmp10) {
|
|
obj = { mobile_signal_strength_level: signalStrength };
|
|
tmp10 = obj;
|
|
}
|
|
const merged1 = Object.assign(tmp10);
|
|
obj["caller_source"] = apiResponseTimestamp.callerSource;
|
|
obj["ad_request_id"] = apiResponseTimestamp.adRequestId;
|
|
obj["fetched_at"] = arg2;
|
|
const previousAdDecision = apiResponseTimestamp.previousAdDecision;
|
|
let decision_id;
|
|
if (null != previousAdDecision) {
|
|
const adDecisionData = previousAdDecision.adDecisionData;
|
|
if (null != adDecisionData) {
|
|
decision_id = adDecisionData.decision_id;
|
|
}
|
|
}
|
|
let tmp16 = null;
|
|
if (null != decision_id) {
|
|
tmp16 = decision_id;
|
|
}
|
|
obj["previous_ad_request_id"] = tmp16;
|
|
const previousAdDecision2 = apiResponseTimestamp.previousAdDecision;
|
|
let fetchedAt;
|
|
if (null != previousAdDecision2) {
|
|
fetchedAt = previousAdDecision2.fetchedAt;
|
|
}
|
|
let tmp18 = null;
|
|
if (null != fetchedAt) {
|
|
tmp18 = fetchedAt;
|
|
}
|
|
obj["previous_fetched_at"] = tmp18;
|
|
obj["transition_case"] = arg1;
|
|
const obj2 = importDefault(675);
|
|
obj["is_foregrounded"] = require(5694) /* isForegrounded */.isForegrounded();
|
|
obj2.track(AnalyticEvents.QUEST_DECISION_ROUNDTRIP, obj);
|
|
const obj5 = require(5694) /* isForegrounded */;
|
|
}
|
|
}
|
|
let tmp2 = (() => {
|
|
class QuestDecisionRoundtripTracker {
|
|
constructor() {
|
|
tmp = outer1_3(this, QuestDecisionRoundtripTracker);
|
|
map = new Map();
|
|
this.pendingRequests = map;
|
|
return;
|
|
}
|
|
}
|
|
let obj = {
|
|
key: "recordQuestRequestAttempt",
|
|
value(endpoint, callerSource) {
|
|
let tmp = arg2;
|
|
const self = this;
|
|
let closure_1 = endpoint;
|
|
if (arg2 === undefined) {
|
|
tmp = null;
|
|
}
|
|
let obj = outer1_1(outer1_2[9]);
|
|
let tmp2 = null;
|
|
if (obj.getConfig({ location: "recordQuestRequestAttempt" }).enableNewRequestBehavior) {
|
|
tmp2 = null;
|
|
if (null != tmp) {
|
|
const questAdDecisionByPlacement = outer1_6.questAdDecisionByPlacement;
|
|
let value = questAdDecisionByPlacement.get(tmp);
|
|
tmp2 = null;
|
|
if (null != value) {
|
|
tmp2 = value;
|
|
}
|
|
}
|
|
}
|
|
obj = { initialSendTimestamp: Date.now(), endpoint, apiResponseTimestamp: null, wasSuccessful: false, callerSource, adRequestId: null, previousAdDecision: tmp2, placement: tmp };
|
|
let pendingRequests = this.pendingRequests;
|
|
const result = pendingRequests.set(endpoint, obj);
|
|
const timerId = setTimeout(() => {
|
|
const pendingRequests = self.pendingRequests;
|
|
const value = pendingRequests.get(closure_1);
|
|
if (null != value) {
|
|
outer2_8(value, "timeout", null);
|
|
const pendingRequests2 = self.pendingRequests;
|
|
pendingRequests2.delete(closure_1);
|
|
}
|
|
}, 30000);
|
|
}
|
|
};
|
|
const items = [obj, ];
|
|
obj = {
|
|
key: "recordQuestRequestApiResponse",
|
|
value(arg0, adRequestId) {
|
|
const self = this;
|
|
adRequestId = adRequestId.adRequestId;
|
|
if (adRequestId === undefined) {
|
|
adRequestId = null;
|
|
}
|
|
let currentQuestId = adRequestId.currentQuestId;
|
|
if (currentQuestId === undefined) {
|
|
currentQuestId = null;
|
|
}
|
|
let currentFetchedAt = adRequestId.currentFetchedAt;
|
|
if (currentFetchedAt === undefined) {
|
|
currentFetchedAt = null;
|
|
}
|
|
const pendingRequests = self.pendingRequests;
|
|
const value = pendingRequests.get(arg0);
|
|
if (null != value) {
|
|
let obj = { location: "recordQuestRequestApiResponse" };
|
|
let str = "legacy";
|
|
let tmp7 = null;
|
|
if (obj4.getConfig(obj).enableNewRequestBehavior) {
|
|
let tmp5 = null;
|
|
if (null !== currentFetchedAt) {
|
|
obj = { questId: currentQuestId, adCreativeId: currentQuestId, fetchedAt: currentFetchedAt, ttlMillis: 0 };
|
|
let tmp6;
|
|
if (null != adRequestId) {
|
|
obj = { decision_id: adRequestId };
|
|
tmp6 = obj;
|
|
}
|
|
obj.adDecisionData = tmp6;
|
|
tmp5 = obj;
|
|
}
|
|
str = (function computeTransitionCase(previousAdDecision, questId2) {
|
|
function getState(questId) {
|
|
let str = "null";
|
|
if (null != questId) {
|
|
let str2 = "quest";
|
|
if (null == questId.questId) {
|
|
str2 = "no_serve";
|
|
}
|
|
str = str2;
|
|
}
|
|
return str;
|
|
}
|
|
const state = getState(previousAdDecision);
|
|
const state1 = getState(questId2);
|
|
if ("quest" === state) {
|
|
if ("quest" === state1) {
|
|
let questId;
|
|
if (null != previousAdDecision) {
|
|
questId = previousAdDecision.questId;
|
|
}
|
|
let questId1;
|
|
if (null != questId2) {
|
|
questId1 = questId2.questId;
|
|
}
|
|
let str = "different_quest";
|
|
if (questId === questId1) {
|
|
str = "same_quest";
|
|
}
|
|
let combined = str;
|
|
}
|
|
return combined;
|
|
}
|
|
combined = "" + state + "_to_" + state1;
|
|
})(value.previousAdDecision, tmp5);
|
|
tmp7 = currentFetchedAt;
|
|
}
|
|
const obj1 = {};
|
|
const merged = Object.assign(value);
|
|
const _Date = Date;
|
|
obj1["apiResponseTimestamp"] = Date.now();
|
|
obj1["wasSuccessful"] = adRequestId.wasSuccessful;
|
|
obj1["adRequestId"] = adRequestId;
|
|
outer1_8(obj1, str, tmp7);
|
|
const pendingRequests2 = self.pendingRequests;
|
|
pendingRequests2.delete(arg0);
|
|
obj4 = outer1_1(outer1_2[9]);
|
|
}
|
|
}
|
|
};
|
|
items[1] = obj;
|
|
return callback(QuestDecisionRoundtripTracker, items);
|
|
})();
|
|
tmp2 = new tmp2();
|
|
let result = require("_isNativeReflectConstruct").fileFinishedImporting("modules/quests/QuestDecisionRoundtripTracker.tsx");
|
|
|
|
export default tmp2;
|