AppSuite:Http.js: Difference between revisions

From Open-Xchange
(Created page with "<div class="title">Requesting server api with http.js</div> '''Abstract''' * located: ''io.ox/core/http.js'' * purpose: centralizes ajax api calls __TOC__ = HTTP facades = ...")
 
No edit summary
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<div class="title">Requesting server api with http.js</div>
The content on this page has moved to https://documentation.open-xchange.com/7.10.2/ui/


'''Abstract'''
Note: Open-Xchange is in the process of migrating all its technical documentation to a new and improved documentation system (documentation.open-xchange.com). Please note as the migration takes place more information will be available on the new system and less on this system. Thank you for your understanding during this period of transition.
 
* located: ''io.ox/core/http.js''
* purpose: centralizes ajax api calls
__TOC__
 
= HTTP facades =
 
''general example''
 
<pre>http.GET({
        module: 'mail',
        params: {
            action: 'all',
            folder: 'default0/INBOX'
        }
    });</pre>
== GET(options) ==
 
<pre>/**
* Send a GET request
* @param {Object}  options Request options
* @returns {Object} jQuery's Deferred
*/</pre>
== POST(options) ==
 
<pre>/**
* Send a POST request
* @param {Object} options Request options
* @returns {Object} jQuery's Deferred
*/</pre>
== FORM(options) ==
 
<pre>/**
* Send a POST request using a FormData object
* @param {Object} options Request options
* @param {string} options.module Module, e.g. folder, mail, calendar etc.
* @param {Object} options.params URL parameters
* @returns {Object} jQuery's Deferred
*/</pre>
== PUT(options) ==
 
<pre>/**
* Send a PUT request
* @param {Object} options Request options
* @returns {Object} jQuery's Deferred
*/
</pre>
== DELETE(options) ==
 
<pre>/**
* Send a DELETE request
* @param {Object} options Request options
* @returns {Object} jQuery's Deferred
*/</pre>
== UPLOAD(options) ==
 
<pre>/**
* Send a UPLOAD request
* @param {Object} options Request options
* @returns {Object} jQuery's Deferred
*/</pre>
= column mappings =
 
* server requests
** still require use of columns ids
* server response
** column_id keys will be replaced with column names to ease handling
 
== getMappedModules() ==
 
<pre>/**
* get names of mapped modules
* @returns {array} mapped modules
*/
</pre>
 
== getAllColumns(module, join) ==
<pre>/**
* get all columns of a module
* @param {string} module (name)
* @param {boolean} join (join array with comma separator )
* @return {arrray|string} ids */ ```
</pre>
 
== getColumnMapping(module) ==
 
<pre>/**
* returns the column mapping of a module
* @param {string} module The module name.
* @returns {object} A map from numeric column IDs to the corresponding field names.
*/</pre>
== makeObject(data, module, columns) ==
 
<pre>/**
* transform objects with array-based columns into key-value-based columns
* @param {Array} data Data
* @param {string} module Module name
* @param {Array} columns Columns
* @returns {Object} Transformed object
*/</pre>
 
<pre>/**
* Fixes order of list requests (temp. fixes backend bug)
* @param  {array} ids
* @param  {deferred} deferred
* @return {deferred} resolve returns array
*/</pre>
= request stacking =
 
* stack ability for calls to minimize overhead of server communication
 
== pause() ''and'' resume() ==
 
'''example'''
 
<pre>// pause http layer
http.pause();
 
// process all updates
_(list).map(function (item) {
    return http.PUT({
        module: 'calendar',
        params: {
            action: 'update',
            id: item.id,
            folder: item.folder_id,
            timestamp: item.timestamp
        },
        data: {  ...  },
    });
});
 
// resume &amp; trigger refresh
http.resume()</pre>
== retry (request) ==
 
* retry request
 
= utils =
 
== simplify(list) ==
 
* simplify objects in array for list requests
* returns array of items
* possible returned item types
** { id: '8978989' }
** { folder: 'inbox' }<br />
** { recurrence_position: 'inbox' }
** 8978989
** 'inbox'
 
<pre>/**
* Simplify objects in array for list requests
* @param  {array} list
* @returns {array} list   
*/</pre>
== fixList(ids, deferred) ==
 
= logging =
 
== log() ==
 
<pre>/**
* returns failed calls
* @return {backbone.collection}
*/</pre>
 
[[Category:AppSuite]]
[[Category:UI]]

Latest revision as of 09:11, 15 May 2019

The content on this page has moved to https://documentation.open-xchange.com/7.10.2/ui/

Note: Open-Xchange is in the process of migrating all its technical documentation to a new and improved documentation system (documentation.open-xchange.com). Please note as the migration takes place more information will be available on the new system and less on this system. Thank you for your understanding during this period of transition.