How do I transform ErrorBuilder output?

Mon Jan 29 2018 09:22:49 GMT+0100 (CET), Peter Širka

How do I transform ErrorBuilder output?

  • Documentation for ErrorBuilder.addTransform()
  • create a definition file e.g. /definitions/transformations.js
ErrorBuilder.addTransform('toObject', function(isResponse) {

    var builder = {};

    for (var i = 0, length = this.items.length; i < length; i++) {
        var err = this.items[i];
        // err.name
        // err.error
        // err.path
        // err.index
        builder[err.name] = err.error;
    }

    // HTTP status (if the schema is used in the routing)
    this.status = 400;

    // Returns a new transformed object
    return isResponse ? JSON.stringify(builder) : builder;
});

// Sets the new transformation as a default output for all ErrorBuilders
ErrorBuilder.setDefaultTransform('toObject');

Tests:

var err = new ErrorBuilder();
err.push('email', 'Email is not valid');
err.push('age', 'You are too young');
err.push('something'); // error message will be read from a resource filfe
console.log(err.output());
// { email: 'Email is not valid', age: 'You are too young' }

Can I create multiple transformations?

Yes. You can create unlimited count of transformations.

ErrorBuilder.addTransform('csv', function() {
   // ...
});

ErrorBuilder.addTransform('xml', function() {
   // ...
});

Usage:

var err = new ErrorBuilder();
err.push('email', 'Email is not valid');
err.push('age', 'You are too young');
err.setTransform('xml');

// OR

var err = new ErrorBuilder();
err.push('email', 'Email is not valid');
err.push('age', 'You are too young');
err.setTransform('csv');

Tags

Follow us

Latest blogs
OpenPlatform v3
Mon Oct 15 2018 10:11:07 GMT+0200 (CEST)
New Single Page Application template
Fri Oct 12 2018 21:25:34 GMT+0200 (CEST)
Flow: How to find a specific component?
Mon Sep 03 2018 20:21:30 GMT+0200 (CEST)
Total.js CMS v12
Mon Sep 03 2018 10:25:29 GMT+0200 (CEST)
Total.js Platform has a new direction
Wed Aug 01 2018 13:46:17 GMT+0200 (CEST)

Latest comments
Nice tip
Mauro Junior
Thu Sep 20 2018 21:41:02 GMT+0200 (CEST)
Not only for Total.js. You can communicate with different websocket servers.
Peter Širka
Mon Apr 23 2018 20:08:20 GMT+0200 (CEST)
Is WEBSOCKETCLIENT only for internal ws connections between totaljs apps?
Stelios Stephanua
Fri Mar 16 2018 06:04:22 GMT+0100 (CET)
Total.js is amazing! ;)
Leonardo Hessel
Tue Dec 19 2017 19:51:15 GMT+0100 (CET)

Pixabay

Read more

OpenPlatform v3

News: I have published a new version of OpenPlatform. New, better, faster, more secure and more simpler.

Mon Oct 15 2018 10:11:07 GMT+0200 (CEST)
New Single Page Application template

News: I have published free, beautiful and simple Total.js + jComponent SPA template under MIT license.

Fri Oct 12 2018 21:25:34 GMT+0200 (CEST)
Flow: How to find a specific component?

Tutorials: This tutorial shows you a quick way how to find a specific component in the Flow designer.

Mon Sep 03 2018 20:21:30 GMT+0200 (CEST)1
Total.js CMS v12

News: New version of CMS brings cool new features and new possibilities for your websites.

Mon Sep 03 2018 10:25:29 GMT+0200 (CEST)
Total.js Platform has a new direction

Business: We have changed the direction for Total.js platform. Currently all Total.js premium products are free.

Wed Aug 01 2018 13:46:17 GMT+0200 (CEST)
Total.js: Incubators, partners and sponsors

Business: We are looking for new partners, sponsors and incubators which can help us to grow!

Wed Aug 01 2018 13:30:49 GMT+0200 (CEST)