/**
*
* Copyright (C) 2021 Akorbi Digital RMP
*
* This file is part of RunMyProcess SDK-JS.
*
* RunMyProcess SDK-JS is free software: you can redistribute it and/or modify
* it under the terms of the Apache License Version 2.0 (the "License");
*
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
Create a new instance of Host
@constructor
@property {User} author - Contains the author's information.
@property {String} title - the title of the Host
@property {Date} published - the published date
@property {Date} updated - the updated date
@property {Object} project - the host's project
@property {Array} modes - an array of host modes
@property {String} transport - the host's transport
@see UserLaneList
@see Resource
@example load hosts
var hl = new HostList();
hl.load({
onSuccess:function(){
alert(hl.hosts.length);
}
});
*/
function Host(){
this.author = new User();
this.title;
this.published;
this.updated;
this.project=new Project();
this.modes=[];
this.transport;
};
/**
@borrows
Inherits Resource
*/
Host.prototype = new Resource();
/**
Overrides Resource's loadPreset method.
@method
@see Resource#loadPreset
*/
Host.prototype.loadPreset = function () {
/**
Overrides Resource's generateUrl method to return the request url
@method
@see Resource#generateUrl
*/
this.generateUrl = function () {
return this.selfUrl;
};
};
/**
Overrides Resource's loadSet method to set local variables after request.
@method
@param {json} rObject - JSON representation of the loaded data.
@see Resource#loadSet
*/
Host.prototype.loadSet = function (rObject) {
var father = this;
father.title = rObject.title;
father.author.name = rObject.author.name;
father.author.selfUrl = rObject.author.uri;
father.updated = new Date(rObject.updated);
father.published = new Date(father.entries[0].published);//NOT IN LOAD
father.rights = rObject.rights;
father.transport = father.termSearch('transport',father.category);
father.project = new Project();
var projectLink = father.linkObjectSearch('project',father.entries[0].link);
if (projectLink){
father.project.title = projectLink.title;
father.project.selfUrl = projectLink.href;
father.project.type = projectLink.type;
}
father.modes = [];
var ent=this.getArray(rObject, "entry");
for (var i = 0; i < ent.length; i++) {
var hm = new HostMode();
hm.id = ent[i].id;
hm.links = mh.getArray(ent[i], "link");
hm.title = ent[i].title;
hm.category = ent[i].category;
hm.updated = new Date(ent[i].updated);
hm.published = new Date(ent[i].published);
hm.rights = ent[i].rights;
hm.project = new Project();
var projectLink = hm.linkObjectSearch('project',hm.links);
if (projectLink){
hm.project.title = projectLink.title;
hm.project.selfUrl = projectLink.href;
hm.project.type = projectLink.type;
}
father.modes.push(hm);
}
};