diff --git a/lib/RouteSchemaManager.js b/lib/RouteSchemaManager.js index 044c7fd..10a50bf 100644 --- a/lib/RouteSchemaManager.js +++ b/lib/RouteSchemaManager.js @@ -104,6 +104,29 @@ var RouteSchemaManager = function(options) { return schemas; }, + convertValueFromStringToType = function(value, type) { + if (typeof(value) !== 'string' || type === 'string') { + return value; + } + if (type === 'integer' || type === 'number') { + // fastest (and more reliable) way to convert strings to numbers + var convertedVal = 1 * value; + // make sure that if our schema calls for an integer, that there is no decimal + if (convertedVal || convertedVal === 0 && (type === 'number' || (value.indexOf('.') === -1))) { + return convertedVal; + } + } + else if (type === 'boolean') { + if (value === 'true') { + return true; + } + else if (value === 'false') { + return false; + } + } + return value; + }, + convertPropertyTypesToMatchSchema = function(object, schema, forceArrayConversion) { // in some cases (query params), we want to force a value to be an array that contains that value, // if the schema expects an array of strings, numbers, integers, or booleans @@ -135,29 +158,6 @@ var RouteSchemaManager = function(options) { } }, - convertValueFromStringToType = function(value, type) { - if (typeof(value) !== 'string' || type === 'string') { - return value; - } - if (type === 'integer' || type === 'number') { - // fastest (and more reliable) way to convert strings to numbers - var convertedVal = 1 * value; - // make sure that if our schema calls for an integer, that there is no decimal - if (convertedVal || convertedVal === 0 && (type === 'number' || (value.indexOf('.') === -1))) { - return convertedVal; - } - } - else if (type === 'boolean') { - if (value === 'true') { - return true; - } - else if (value === 'false') { - return false; - } - } - return value; - }, - convertArraysInQueryString = function(queryObj) { var prop, newProp, idx, arraySyntaxRegex = /\[\d+\]$/; diff --git a/lib/SwaggerManager.js b/lib/SwaggerManager.js index 2fed105..d9f7fb2 100644 --- a/lib/SwaggerManager.js +++ b/lib/SwaggerManager.js @@ -30,22 +30,19 @@ var SwaggerManager = function(options) { }); }, + swaggerParamTypeMap = { + path: 'path', + query: 'query', + payload: 'body', + headers: 'header' + }, + getRoutesGroupedByPath = function(routes) { return _.groupBy(routes, function(item) { return item.path; }); }, - getApplicationVersion = function() { - var executingFile = process.argv[1]; - var packageLoc = findPackageJson(executingFile.replace(/\/[^\/]+?$/g, '')); - - if (packageLoc) { - return require(packageLoc).version; - } - return 'unknown'; - }, - findPackageJson = function(startingDirectory) { if (!startingDirectory) { return false; @@ -56,6 +53,16 @@ var SwaggerManager = function(options) { return findPackageJson(startingDirectory.replace(/\/[^\/]+?$/g, '')); }, + getApplicationVersion = function() { + var executingFile = process.argv[1]; + var packageLoc = findPackageJson(executingFile.replace(/\/[^\/]+?$/g, '')); + + if (packageLoc) { + return require(packageLoc).version; + } + return 'unknown'; + }, + getSwaggerParams = function(route, type, operationNickname) { var params = [], prop, param; if (swaggerParamTypeMap[type] && @@ -128,6 +135,18 @@ var SwaggerManager = function(options) { return params; }, + setOperationConsumes = function (payloadParameters, route, operation) { + if (!payloadParameters.length) { //if no payload parameters, no consumes attribute + return; + } + + if (route.settings.payload && route.settings.payload.allow && route.settings.payload.parse) { + operation.consumes = route.settings.payload.allow; + } else { + operation.consumes = consumesDefaults; + } + }, + getSwaggerOperationForRoute = function(route, resourceType, path) { var pathParts = path.split('/'), regex = /^\{.+\}$/, @@ -201,18 +220,6 @@ var SwaggerManager = function(options) { return operation; }, - setOperationConsumes = function (payloadParameters, route, operation) { - if (!payloadParameters.length) { //if no payload parameters, no consumes attribute - return; - } - - if (route.settings.payload && route.settings.payload.allow && route.settings.payload.parse) { - operation.consumes = route.settings.payload.allow; - } else { - operation.consumes = consumesDefaults; - } - }, - getModelForRoute = function(route, modelKind, modelGetter){ var plugins = route.settings.plugins; var model; @@ -276,12 +283,6 @@ var SwaggerManager = function(options) { }); }, - swaggerParamTypeMap = { - path: 'path', - query: 'query', - payload: 'body', - headers: 'header' - }, defaultResourceListingModel = { apiVersion: options.apiVersion || getApplicationVersion().split('.')[0], swaggerVersion: '1.2',