(function(window)
{
var Gitana = window.Gitana;
Gitana.DomainUser =
{
TYPE: "USER",
/**
* Reads the person node for this user.
*
* @param branch
* @param createIfNotFound
*
* @chained person
* @public
*/
readPersonNode: function(branch, createIfNotFound)
{
// what we hand back
var result = this.subchain(this.getFactory().node(branch, "n:person"));
// work
result.subchain(branch).readPersonNode(this.getDomainQualifiedId(), createIfNotFound).then(function() {
result.handleResponse(this);
});
return result;
},
hasIdentity: function()
{
return (this.getDirectoryId() && this.getIdentityId());
},
getDirectoryId: function()
{
return this.get("directoryId");
},
getIdentityId: function()
{
return this.get("identityId");
},
readDirectory: function()
{
var directory = this.getFactory().directory(this.getPlatform(), {
"_doc": this.getDirectoryId()
});
// what we hand back
var result = this.subchain(directory);
// work
result.subchain(this.getPlatform()).readDirectory(this.getDirectoryId()).then(function() {
result.handleResponse(this);
});
return result;
},
readIdentity: function()
{
var self = this;
var directory = this.getFactory().directory(this.getPlatform(), {
"_doc": this.getDirectoryId()
});
var identity = this.getFactory().identity(directory, {
"_doc": this.getIdentityId()
});
// what we hand back
var result = this.subchain(identity);
// work
result.subchain(this.getPlatform()).readDirectory(self.getDirectoryId()).then(function() {
// NOTE: this = directory
directory.handleResponse(this);
this.readIdentity(self.getIdentityId()).then(function() {
// NOTE: this = identity
identity.handleResponse(this);
// all done
});
//return false;
});
return result;
},
//////////////////////////////////////////////////////////////////////////////////////////////////
//
// PROPERTIES
//
//////////////////////////////////////////////////////////////////////////////////////////////////
getFirstName: function()
{
return this.get("firstName");
},
setFirstName: function(firstName)
{
this.set("firstName", firstName);
},
getLastName: function()
{
return this.get("lastName");
},
setLastName: function(lastName)
{
this.set("lastName", lastName);
},
getCompanyName: function()
{
return this.get("companyName");
},
setCompanyName: function(companyName)
{
this.set("companyName", companyName);
},
getEmail: function()
{
return this.get("email");
},
setEmail: function(email)
{
this.set("email", email);
},
getJobTitle: function()
{
return this.get("jobTitle");
},
setJobTitle: function(jobTitle)
{
this.set("jobTitle", jobTitle);
},
getAddress: function()
{
return this.get("address");
},
setAddress: function(address)
{
this.set("address", address);
},
getCity: function()
{
return this.get("city");
},
setCity: function(city)
{
this.set("city", city);
},
getState: function()
{
return this.get("state");
},
setState: function(state)
{
this.set("state", state);
},
getZipcode: function()
{
return this.get("zipcode");
},
setZipcode: function(zipcode)
{
this.set("zipcode", zipcode);
},
getPhoneNumber: function()
{
return this.get("phoneNumber");
},
setPhoneNumber: function(phoneNumber)
{
this.set("phoneNumber", phoneNumber);
}
};
})(window);