Skip to content

Commit 5d704f2

Browse files
https://api.playfab.com/releaseNotes/#190312
2 parents 1086195 + dffc046 commit 5d704f2

35 files changed

+6162
-4104
lines changed

PlayFabSdk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "playfab-web-sdk",
3-
"version": "1.41.190304",
3+
"version": "1.42.190312",
44
"description": "Playfab SDK for JS client applications",
55
"license": "Apache-2.0",
66
"repository": {

PlayFabSdk/src/PlayFab/PlayFabAdminApi.js

Lines changed: 263 additions & 298 deletions
Large diffs are not rendered by default.

PlayFabSdk/src/PlayFab/PlayFabAuthenticationApi.js

Lines changed: 157 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ if(!PlayFab.settings) {
2121
if(!PlayFab._internalSettings) {
2222
PlayFab._internalSettings = {
2323
entityToken: null,
24-
sdkVersion: "1.41.190304",
24+
sdkVersion: "1.42.190312",
2525
requestGetParams: {
26-
sdk: "JavaScriptSDK-1.41.190304"
26+
sdk: "JavaScriptSDK-1.42.190312"
2727
},
2828
sessionTicket: null,
2929
verticalName: null, // The name of a customer vertical. This is only for customers running a private cluster. Generally you shouldn't touch this
@@ -60,104 +60,179 @@ if(!PlayFab._internalSettings) {
6060
},
6161

6262
ExecuteRequest: function (url, request, authkey, authValue, callback, customData, extraHeaders) {
63-
if (callback != null && typeof (callback) != "function")
64-
throw "Callback must be null of a function";
65-
66-
if (request == null)
67-
request = {};
68-
69-
var startTime = new Date();
70-
var requestBody = JSON.stringify(request);
71-
72-
var urlArr = [url];
73-
var getParams = PlayFab._internalSettings.requestGetParams;
74-
if (getParams != null) {
75-
var firstParam = true;
76-
for (var key in getParams) {
77-
if (firstParam) {
78-
urlArr.push("?");
79-
firstParam = false;
80-
} else {
81-
urlArr.push("&");
63+
var resultPromise = new Promise(function (resolve, reject) {
64+
if (callback != null && typeof (callback) !== "function")
65+
throw "Callback must be null of a function";
66+
67+
if (request == null)
68+
request = {};
69+
70+
var startTime = new Date();
71+
var requestBody = JSON.stringify(request);
72+
73+
var urlArr = [url];
74+
var getParams = PlayFab._internalSettings.requestGetParams;
75+
if (getParams != null) {
76+
var firstParam = true;
77+
for (var key in getParams) {
78+
if (firstParam) {
79+
urlArr.push("?");
80+
firstParam = false;
81+
} else {
82+
urlArr.push("&");
83+
}
84+
urlArr.push(key);
85+
urlArr.push("=");
86+
urlArr.push(getParams[key]);
8287
}
83-
urlArr.push(key);
84-
urlArr.push("=");
85-
urlArr.push(getParams[key]);
8688
}
87-
}
8889

89-
var completeUrl = urlArr.join("");
90+
var completeUrl = urlArr.join("");
9091

91-
var xhr = new XMLHttpRequest();
92-
// window.console.log("URL: " + completeUrl);
93-
xhr.open("POST", completeUrl, true);
92+
var xhr = new XMLHttpRequest();
93+
// window.console.log("URL: " + completeUrl);
94+
xhr.open("POST", completeUrl, true);
9495

95-
xhr.setRequestHeader("Content-Type", "application/json");
96-
xhr.setRequestHeader("X-PlayFabSDK", "JavaScriptSDK-" + PlayFab._internalSettings.sdkVersion);
97-
if (authkey != null)
98-
xhr.setRequestHeader(authkey, authValue);
99-
PlayFab._internalSettings.InjectHeaders(xhr, PlayFab.settings.GlobalHeaderInjection);
100-
PlayFab._internalSettings.InjectHeaders(xhr, extraHeaders);
96+
xhr.setRequestHeader("Content-Type", "application/json");
97+
xhr.setRequestHeader("X-PlayFabSDK", "JavaScriptSDK-" + PlayFab._internalSettings.sdkVersion);
98+
if (authkey != null)
99+
xhr.setRequestHeader(authkey, authValue);
100+
PlayFab._internalSettings.InjectHeaders(xhr, PlayFab.settings.GlobalHeaderInjection);
101+
PlayFab._internalSettings.InjectHeaders(xhr, extraHeaders);
101102

102-
xhr.onloadend = function () {
103-
if (callback == null)
104-
return;
103+
xhr.onloadend = function () {
104+
if (callback == null)
105+
return;
105106

106-
var result;
107-
try {
108-
// window.console.log("parsing json result: " + xhr.responseText);
109-
result = JSON.parse(xhr.responseText);
110-
} catch (e) {
111-
result = {
112-
code: 503, // Service Unavailable
113-
status: "Service Unavailable",
114-
error: "Connection error",
115-
errorCode: 2, // PlayFabErrorCode.ConnectionError
116-
errorMessage: xhr.responseText
117-
};
107+
var result = PlayFab._internalSettings.GetPlayFabResponse(request, xhr, startTime, customData);
108+
if (result.code === 200) {
109+
callback(result, null);
110+
} else {
111+
callback(null, result);
112+
}
118113
}
119114

120-
result.CallBackTimeMS = new Date() - startTime;
121-
result.Request = request;
122-
result.CustomData = customData;
115+
xhr.onerror = function () {
116+
if (callback == null)
117+
return;
123118

124-
if (result.code === 200)
125-
callback(result, null);
126-
else
119+
var result = PlayFab._internalSettings.GetPlayFabResponse(request, xhr, startTime, customData);
127120
callback(null, result);
121+
}
122+
123+
xhr.send(requestBody);
124+
xhr.onreadystatechange = function () {
125+
if (this.readyState === 4) {
126+
var xhrResult = PlayFab._internalSettings.GetPlayFabResponse(request, this, startTime, customData);
127+
if (this.status === 200) {
128+
resolve(xhrResult);
129+
} else {
130+
reject(xhrResult);
131+
}
132+
}
133+
};
134+
});
135+
// Return a Promise so that calls to various API methods can be handled asynchronously
136+
return resultPromise;
137+
},
138+
139+
GetPlayFabResponse: function(request, xhr, startTime, customData) {
140+
var result = null;
141+
try {
142+
// window.console.log("parsing json result: " + xhr.responseText);
143+
result = JSON.parse(xhr.responseText);
144+
} catch (e) {
145+
result = {
146+
code: 503, // Service Unavailable
147+
status: "Service Unavailable",
148+
error: "Connection error",
149+
errorCode: 2, // PlayFabErrorCode.ConnectionError
150+
errorMessage: xhr.responseText
151+
};
128152
}
129153

130-
xhr.onerror = function () {
131-
if (callback == null)
132-
return;
154+
result.CallBackTimeMS = new Date() - startTime;
155+
result.Request = request;
156+
result.CustomData = customData;
157+
return result;
158+
},
133159

134-
var result;
135-
try {
136-
result = JSON.parse(xhr.responseText);
137-
} catch (e) {
138-
result = {
139-
code: 503, // Service Unavailable
140-
status: "Service Unavailable",
141-
error: "Connection error",
142-
errorCode: 2, // PlayFabErrorCode.ConnectionError
143-
errorMessage: xhr.responseText
144-
};
145-
}
160+
authenticationContext: {
161+
PlayFabId: null,
162+
EntityId: null,
163+
EntityType: null,
164+
SessionTicket: null,
165+
EntityToken: null
166+
},
146167

147-
result.CallBackTimeMS = new Date() - startTime;
148-
result.Request = request;
149-
result.CustomData = customData;
168+
UpdateAuthenticationContext: function (authenticationContext, result) {
169+
var authenticationContextUpdates = {};
170+
if(result.data.PlayFabId !== null) {
171+
PlayFab._internalSettings.authenticationContext.PlayFabId = result.data.PlayFabId;
172+
authenticationContextUpdates.PlayFabId = result.data.PlayFabId;
173+
}
174+
if(result.data.SessionTicket !== null) {
175+
PlayFab._internalSettings.authenticationContext.SessionTicket = result.data.SessionTicket;
176+
authenticationContextUpdates.SessionTicket = result.data.SessionTicket;
177+
}
178+
if (result.data.EntityToken !== null) {
179+
PlayFab._internalSettings.authenticationContext.EntityId = result.data.EntityToken.Entity.Id;
180+
authenticationContextUpdates.EntityId = result.data.EntityToken.Entity.Id;
181+
PlayFab._internalSettings.authenticationContext.EntityType = result.data.EntityToken.Entity.Type;
182+
authenticationContextUpdates.EntityType = result.data.EntityToken.Entity.Type;
183+
PlayFab._internalSettings.authenticationContext.EntityToken = result.data.EntityToken.EntityToken;
184+
authenticationContextUpdates.EntityToken = result.data.EntityToken.EntityToken;
185+
}
186+
// Update the authenticationContext with values from the result
187+
authenticationContext = Object.assign(authenticationContext, authenticationContextUpdates);
188+
return authenticationContext;
189+
},
150190

151-
callback(null, result);
191+
AuthInfoMap: {
192+
"X-EntityToken": {
193+
authAttr: "entityToken",
194+
authError: "errorEntityToken"
195+
},
196+
"X-Authorization": {
197+
authAttr: "sessionTicket",
198+
authError: "errorLoggedIn"
199+
},
200+
"X-SecretKey": {
201+
authAttr: "developerSecretKey",
202+
authError: "errorSecretKey"
152203
}
204+
},
153205

154-
xhr.send(requestBody);
206+
GetAuthInfo: function (request, authKey) {
207+
// Use the most-recently saved authKey, unless one was provided in the request via the AuthenticationContext
208+
var authError = PlayFab._internalSettings.AuthInfoMap[authKey].authError;
209+
var authAttr = PlayFab._internalSettings.AuthInfoMap[authKey].authAttr;
210+
var defaultAuthValue = null;
211+
if (authAttr === "entityToken")
212+
defaultAuthValue = PlayFab._internalSettings.entityToken;
213+
else if (authAttr === "sessionTicket")
214+
defaultAuthValue = PlayFab._internalSettings.sessionTicket;
215+
else if (authAttr === "developerSecretKey")
216+
defaultAuthValue = PlayFab.settings.developerSecretKey;
217+
var authValue = request.AuthenticationContext ? request.AuthenticationContext[authAttr] : defaultAuthValue;
218+
return {"authKey": authKey, "authValue": authValue, "authError": authError};
219+
},
220+
221+
ExecuteRequestWrapper: function (apiURL, request, authKey, callback, customData, extraHeaders) {
222+
var authValue = null;
223+
if (authKey !== null){
224+
var authInfo = PlayFab._internalSettings.GetAuthInfo(request, authKey=authKey);
225+
var authKey = authInfo.authKey, authValue = authInfo.authValue, authError = authInfo.authError;
226+
227+
if (!authValue) throw authError;
228+
}
229+
return PlayFab._internalSettings.ExecuteRequest(PlayFab._internalSettings.GetServerUrl() + apiURL, request, authKey, authValue, callback, customData, extraHeaders);
155230
}
156231
}
157232
}
158233

159-
PlayFab.buildIdentifier = "jbuild_javascriptsdk__sdk-genericslave-3_0";
160-
PlayFab.sdkVersion = "1.41.190304";
234+
PlayFab.buildIdentifier = "jbuild_javascriptsdk__sdk-genericslave-1_0";
235+
PlayFab.sdkVersion = "1.42.190312";
161236
PlayFab.GenerateErrorReport = function (error) {
162237
if (error == null)
163238
return "";
@@ -176,15 +251,15 @@ PlayFab.AuthenticationApi = {
176251

177252
GetEntityToken: function (request, callback, customData, extraHeaders) {
178253
var authKey = null; var authValue = null;
179-
if (!authKey && PlayFab._internalSettings.sessionTicket) { authKey = "X-Authorization"; authValue = PlayFab._internalSettings.sessionTicket; }
180-
if (!authKey && PlayFab.settings.developerSecretKey) { authKey = "X-SecretKey"; authValue = PlayFab.settings.developerSecretKey; }
254+
if (!authKey && PlayFab._internalSettings.sessionTicket) { var authInfo = PlayFab._internalSettings.GetAuthInfo(request, authKey="X-Authorization"); authKey = authInfo.authKey, authValue = authInfo.authValue; }
255+
if (!authKey && PlayFab.settings.developerSecretKey) { var authInfo = PlayFab._internalSettings.GetAuthInfo(request, authKey="X-SecretKey"); authKey = authInfo.authKey, authValue = authInfo.authValue; }
181256
var overloadCallback = function (result, error) {
182257
if (result != null && result.data.EntityToken != null)
183258
PlayFab._internalSettings.entityToken = result.data.EntityToken;
184-
if (callback != null && typeof (callback) == "function")
259+
if (callback != null && typeof (callback) === "function")
185260
callback(result, error);
186261
};
187-
PlayFab._internalSettings.ExecuteRequest(PlayFab._internalSettings.GetServerUrl() + "/Authentication/GetEntityToken", request, authKey, authValue, overloadCallback, customData, extraHeaders);
262+
return PlayFab._internalSettings.ExecuteRequestWrapper("/Authentication/GetEntityToken", request, authKey, overloadCallback, customData, extraHeaders);
188263
},
189264
};
190265

0 commit comments

Comments
 (0)