Customize SUCCESS method

Mon Jul 17 2017 08:51:55 GMT+0200 (CEST), Peter Širka

Customize SUCCESS() method

The SUCCESS() method is the most used method in my Total.js applications. And few developers know that the output of this method can be changed to fit your needs.

How to modify it?

  • create a definition file called overrides.js
global.SUCCESS = function(success, value) {

    // Check if the "success" variable is a function
    if (typeof(success) === 'function') {
        return function(err, value) {
            success(err, SUCCESS(err, value));
        };
    }

    var err;

    if (success instanceof Error) {
        // Is "success" Error?
        err = success.toString();
        success = false;
    } else if (success instanceof ErrorBuilder) {
        // Maybe "success" is ErrorBuilder instance
        if (success.hasError()) {
            err = success.output();
            success = false;
        } else
            success = true;
    } else if (success == null)
        success = true;

    if (err)
        return { error: err };
    else if (success)
        return { ok: true };
    else
        return { error: 'Repeat your operation.' };
};

Usage examples:

console.log(SUCCESS(true));
// Output: { ok: true }

console.log(SUCCESS(false));
// Output: { error: 'Repeat your operation.' }

console.log(SUCCESS(false));
// Output: { error: 'Error: A bug' }

console.log(SUCCESS(new ErrorBuilder().push('', 'A bug')));
// Output: { error: [ { name: '', error: 'A bug', path: undefined, index: undefined } ] }

// the real purpose is to use it as a response in a controller
function some_controller() {
    this.json(SUCCESS(true));
}

Tags

Follow us

Latest blogs
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)
Total.js: Incubators, partners and sponsors
Wed Aug 01 2018 13:30:49 GMT+0200 (CEST)
Total.js v3.0.0
Wed Aug 01 2018 13:24:21 GMT+0200 (CEST)

Latest comments
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

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)
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)
Total.js v3.0.0

News: I have released a new version of Total.js framework. New version brings two awesome features and a lot of improvements.

Wed Aug 01 2018 13:24:21 GMT+0200 (CEST)
Flow v5.1

News: This version of Flow brings three new great features and small UI improvements.

Thu Jun 28 2018 19:22:41 GMT+0200 (CEST)