callback.js 4.07 KB
module.exports = function(Callback) {
    Callback.disableRemoteMethod("create", true);
    Callback.disableRemoteMethod("upsert", true);
    Callback.disableRemoteMethod("updateAll", true);
    Callback.disableRemoteMethod("updateAttributes", false);

    Callback.disableRemoteMethod("find", true);
    Callback.disableRemoteMethod("findById", true);
    Callback.disableRemoteMethod("findOne", true);

    Callback.disableRemoteMethod("deleteById", true);

    Callback.disableRemoteMethod("confirm", true);
    Callback.disableRemoteMethod("count", true);
    Callback.disableRemoteMethod("exists", true);
    Callback.disableRemoteMethod("resetPassword", true);

    Callback.disableRemoteMethod('__count__accessTokens', false);
    Callback.disableRemoteMethod('__create__accessTokens', false);
    Callback.disableRemoteMethod('__delete__accessTokens', false);
    Callback.disableRemoteMethod('__destroyById__accessTokens', false);
    Callback.disableRemoteMethod('__findById__accessTokens', false);
    Callback.disableRemoteMethod('__get__accessTokens', false);
    Callback.disableRemoteMethod('__updateById__accessTokens', false);

    Callback.disableRemoteMethod('create', true);                // Removes (POST) /products
    Callback.disableRemoteMethod('upsert', true);                // Removes (PUT) /products
    Callback.disableRemoteMethod('deleteById', true);            // Removes (DELETE) /products/:id
    Callback.disableRemoteMethod("updateAll", true);               // Removes (POST) /products/update
    Callback.disableRemoteMethod("updateAttributes", false);       // Removes (PUT) /products/:id
    Callback.disableRemoteMethod('createChangeStream', true);    // removes (GET|POST) /products/change-stream

    Callback.EmptryParams = function (cb) {
        // cb = callback;
        var success = {
            "resultCode": 20000,
            "resultDescription":"Success"
        };
        cb(null,success);
    };
    Callback.remoteMethod('EmptryParams',{
        http:{path:'/EmptryParams',verb:'get'},
        returns: {arg: 'data', type: 'object', root: true}
    });
    Callback.HttpPost = function (ctx,cb) {
        // cb = callback;
        var success = {
            "resultCode": 20000,
            "resultDescription":"Success",
            "data":ctx
        };
        cb(null,success);
    };
    Callback.remoteMethod('HttpPost',{
        http:{path:'/HttpPost',verb:'post'},
        accepts: { arg: 'ctx', type: 'object', default: {
            "string": "string",
            "number": 12345,
            "array": ['string',1234],
            "object": {
                "string":"string",
                "number":1234
            }
        },http: { source: 'body' }},
        returns: {arg: 'data', type: 'object', root: true}
    });
    Callback.HttpGet = function (ctx,cb) {
        // cb = callback;

        var success = {
            "resultCode": 20000,
            "resultDescription":"Success",
            "Try it on":"http://localhost:3232/api/callbacks/models1/5555/models2/6666",
            "data":ctx

        };
        cb(null,success);
    };
    Callback.remoteMethod('HttpGet',{
        http:{path:'/models1/:params1/models2/:params2',verb:'get'},
        accepts: { arg: 'ctx', type: 'object',  http: function(ctx) {
            // รับข้อมุลมาใส่ไว้ใน ctx
            // 1. รับข้อมูล object ที่ส่งมาโดยใช้ express
            var req = ctx.req;

            /* 2. Get ข้อมูลแบบ params
             * params คือค่าที่ส่งมากับ url ex http://localhost/Item/params1/params2
             * รับค่ามาตั้งแต่ http:{path:'/: ตัวแปรที่รับค่าเก็บไว้ /: ตัวแปรที่รับค่าเก็บไว้

             */
            var params = {
                "params1":req.params.params1,
                "params2":req.params.params2
            };
            return params;
        } } ,
        returns: {arg: 'data', type: 'object', root: true}
    });
};