CleanSpeak SaaS Example (prime.js)

Example API call using prime.js

HTML

<script src="https://savant.inversoft.org/org/inversoft/prime/prime.js/0.34.14/prime-min-0.34.14.js"></script>
<div id="results"></div>

CSS

#results {
  display: block;
  unicode-bidi: embed;
  font-family: monospace;
  white-space: pre;
}

JavaScript

var CleanSpeak = CleanSpeak || {};
CleanSpeak.FilterRequest = CleanSpeak.FilterRequest || {};

/**
 *  CleanSpeak Filter Request 
 *
 *  @param {Object} request The filter request object.
 *  @constructor
 */
CleanSpeak.FilterRequest = function(request) {
  this.request = request;
  this.results = Prime.Document.queryByID('results');
};

CleanSpeak.FilterRequest.constructor = CleanSpeak.FilterRequest;
CleanSpeak.FilterRequest.prototype = {

  go: function() {
  	new Prime.Ajax.Request('http://api.inversoft.com:8211/content/item/filter', 'POST')
      .withHeader('Authorization', '3be426e3-bd13-44c4-9542-b750eeb3eacb')
      .withSuccessHandler(this._handleSuccess)
      .withErrorHandler(this._handleError)
      .withContext(this)
      .withJSON(this.request)
      .go();
  },

  _handleSuccess: function(xhr) {
    this.results.setHTML(JSON.stringify(JSON.parse(xhr.responseText), null, 2)); 
  },
  
  _handleError: function(xhr) {
     this.results.setHTML('Status: ' + xhr.status + '\n');
     this.results.setHTML('Status: ' + xhr.responseText + '\n');

     if (xhr.status === 401) {
       this.results.setHTML('Not Authenticated, change the API key.');
     } else if (xhr.status === 400) {
       var response = JSON.parse(xhr.responseText);
       this.results.setHTML('Failure: \n' + JSON.stringify(response, null, 2));
     } else {
       this.results.setHTML(xhr.errorText);
     }
  }
};

// Instantiate a new CleanSpeak Filter Request and call go()
var data = {
  'content': 'I hate you, you\'re a jerk!'
};
new CleanSpeak.FilterRequest(data).go();