/** * Method * * Copyright (C) TENDIGI, LLC - All Rights Reserved * Unauthorized copying of this file, via any medium is strictly prohibited * Proprietary and confidential * Written by Nick Lee , June 2015 * */ import Promise = require('bluebird'); import Boom = require('boom'); import Joi = require('joi'); import Constants = require('../../config/constants'); import Request = require('../request'); import Response = require('../responses/response'); import ErrorResponse = require('../responses/error_response'); import Filter = require('../../filters/filter'); class Method { // Private members private _verb: string; private _name: string; private _filters: Array; // Initialization constructor(verb: string, name: string) { this._verb = verb; this._name = name; } // Validation validators(): Array { return []; } // Handling handle(request: Request, callback: (response: Response) => void) { let response = new ErrorResponse(Boom.notFound()); callback(response); } // Transformers transformRequest(request: Request): Promise { return new Promise(function(fulfill, reject){ fulfill(request); }); } transformResponse(response: Response): Promise { return new Promise(function(fulfill, reject){ fulfill(response); }); } // Accessors get verb(): string { return this._verb; } get name(): string { return this._name; } get filters(): Array { return this._filters; } set filters(filters: Array) { this._filters = filters; } } export = Method;