authorization

beta.r3js.org
-=yb4f310 2017-10-10 14:02:14 +02:00
parent 9ad44012ce
commit 73bbd79aea
2 changed files with 79 additions and 82 deletions

View File

@ -423,50 +423,34 @@ GameLib.Component.prototype.saveToRemoteAPI = function() {
GameLib.Component.prototype.save = function(remote) {
var event = GameLib.Event.GET_API_URL;
this.buildIdToObject();
if (remote) {
event = GameLib.Event.GET_REMOTE_API_URL
}
for (var property in this.idToObject) {
if (
this.idToObject.hasOwnProperty(property) &&
this.idToObject[property] instanceof GameLib.Component
) {
this.publish(
event,
null,
function(data) {
this.buildIdToObject();
var apiObject = this.idToObject[property].toApiObject();
for (var property in this.idToObject) {
if (
this.idToObject.hasOwnProperty(property) &&
this.idToObject[property] instanceof GameLib.Component
) {
apiObject.componentType = this.idToObject[property].componentType;
var apiObject = this.idToObject[property].toApiObject();
var storageDependencies = this.idToObject[property].getStorageDependencies();
apiObject.componentType = this.idToObject[property].componentType;
var storageDependencies = this.idToObject[property].getStorageDependencies();
for (var storageProperty in storageDependencies) {
if (storageDependencies.hasOwnProperty(storageProperty)) {
apiObject[storageProperty] = storageDependencies[storageProperty];
}
}
this.publish(
GameLib.Event.SAVE_COMPONENT,
{
apiUrl : data.apiUrl,
apiObject : apiObject
}
);
for (var storageProperty in storageDependencies) {
if (storageDependencies.hasOwnProperty(storageProperty)) {
apiObject[storageProperty] = storageDependencies[storageProperty];
}
}
}.bind(this),
function(error) {
console.error(error);
throw new Error('Failed to get API URL: ' + error.message);
this.publish(
GameLib.Event.SAVE_COMPONENT,
{
apiObject: apiObject,
remote: remote
}
);
}
);
}
};

View File

@ -199,6 +199,7 @@ GameLib.System.Storage.prototype.delete = function(data) {
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("x-authorization", urlData.passwoid);
xhr.onreadystatechange = function () {
if (this.readyState === 4) {
@ -246,62 +247,74 @@ GameLib.System.Storage.prototype.delete = function(data) {
};
/**
* 'Saves' data to baseURL
* 'Saves' data to somewhere
*/
GameLib.System.Storage.prototype.save = function(data) {
if (typeof XMLHttpRequest === 'undefined') {
console.log('Implement server side save here');
return;
var event = GameLib.Event.GET_API_URL;
if (data.remote) {
event = GameLib.Event.GET_REMOTE_API_URL
}
var xhr = new XMLHttpRequest();
xhr.open(
'POST',
data.apiUrl + '/component/create'
);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (this.readyState === 4) {
try {
var response = JSON.parse(this.responseText)
} catch (error) {
GameLib.Event.Emit(
GameLib.Event.SAVE_COMPONENT_ERROR,
{
message: this.responseText
}
)
this.publish(
event,
null,
function(urlData) {
if (typeof XMLHttpRequest === 'undefined') {
console.log('Implement server side save here');
return;
}
if (response.result === 'success') {
GameLib.Event.Emit(
GameLib.Event.COMPONENT_SAVED,
{
message: response.message || 'Successfully saved the component'
var xhr = new XMLHttpRequest();
xhr.open(
'POST',
urlData.apiUrl + '/component/create'
);
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("x-authorization", urlData.passwoid);
xhr.onreadystatechange = function () {
if (this.readyState === 4) {
try {
var response = JSON.parse(this.responseText)
} catch (error) {
GameLib.Event.Emit(
GameLib.Event.SAVE_COMPONENT_ERROR,
{
message: this.responseText
}
)
}
)
} else {
GameLib.Event.Emit(
GameLib.Event.SAVE_COMPONENT_ERROR,
{
message: response.message || 'The server responded but failed to save the component'
if (response.result === 'success') {
GameLib.Event.Emit(
GameLib.Event.COMPONENT_SAVED,
{
message: response.message || 'Successfully saved the component'
}
)
} else {
GameLib.Event.Emit(
GameLib.Event.SAVE_COMPONENT_ERROR,
{
message: response.message || 'The server responded but failed to save the component'
}
)
}
)
}
}
};
xhr.send(JSON.stringify({
component : data.apiObject,
session : this.token
}));
}
};
xhr.send(JSON.stringify({
component : data.apiObject,
session : this.token
}));
);
};