Source: TwisterProfile.js

var inherits = require('inherits');

var TwisterResource = require('./TwisterResource.js');

/**
 * Describes the profile of a {@link TwisterUser}.
 * @class
 */
TwisterProfile = function (name,scope) {
    
    TwisterResource.call(this,name,scope);
    
    this._type = "profile";

    
}

inherits(TwisterProfile,TwisterResource);

module.exports = TwisterProfile;

TwisterProfile.prototype._queryAndDo = function (cbfunc) {

    var thisResource = this;
    
    var Twister = this._scope;
    
    //console.log("before dhtget"+thisResource._name+" "+thisResource._type)
                                
    thisResource.dhtget([thisResource._name, "profile", "s"],
                   
        function (result) {

            if (result[0]) {

                thisResource._data=result[0].p.v;
                thisResource._revisionNumber=result[0].p.seq;
                thisResource._lastUpdate=Date.now()/1000;
                cbfunc(thisResource);

            } else {
			
				thisResource._handleError({
                  message: "DHT resource is empty.",
                  code: 32052
                })
                thisResource._revisionNumber=0;
                thisResource._lastUpdate=Date.now()/1000;
                //cbfunc(thisResource);
			
			}

        }

    );   
        
}

/** @function
 * @name getAllFields 
 * @description returns the complete profile as Object
 */
TwisterProfile.prototype.getAllFields = function () {

    return this._data;
    
}

TwisterProfile.prototype.getUsername = function () {
  return this._name;
}

/** @function
 * @name getField 
 * @description returns a single field of the profile
 */
TwisterProfile.prototype.getField = function (fieldname) {
  
  if (this._data) {
    return this._data[fieldname];
  } else { return null }
    
}