@@ -11,6 +11,7 @@ module.exports = DataAccessObject;
1111/*!
1212 * Module dependencies
1313 */
14+ var g = require ( 'strong-globalize' ) ( ) ;
1415var async = require ( 'async' ) ;
1516var jutil = require ( './jutil' ) ;
1617var ValidationError = require ( './validations' ) . ValidationError ;
@@ -89,7 +90,7 @@ function applyStrictCheck(model, strict, data, inst, cb) {
8990 if ( props [ key ] ) {
9091 result [ key ] = data [ key ] ;
9192 } else if ( strict === 'throw' ) {
92- cb ( new Error ( 'Unknown property: ' + key ) ) ;
93+ cb ( new Error ( g . f ( 'Unknown property: %s' , key ) ) ) ;
9394 return ;
9495 } else if ( strict === 'validate' ) {
9596 inst . __unknownProperties . push ( key ) ;
@@ -533,8 +534,8 @@ DataAccessObject.upsert = function(data, options, cb) {
533534 return cb ( new ValidationError ( inst ) , inst ) ;
534535 } else {
535536 // TODO(bajtos) Remove validateUpsert:undefined in v3.0
536- console . warn ( 'Ignoring validation errors in updateOrCreate():' ) ;
537- console . warn ( ' %s' , new ValidationError ( inst ) . message ) ;
537+ g . warn ( 'Ignoring validation errors in {{ updateOrCreate()}} :' ) ;
538+ g . warn ( ' %s' , new ValidationError ( inst ) . message ) ;
538539 // continue with updateOrCreate
539540 }
540541 }
@@ -1049,7 +1050,7 @@ DataAccessObject.exists = function exists(id, options, cb) {
10491050 } ) ;
10501051 } else {
10511052 process . nextTick ( function ( ) {
1052- cb ( new Error ( ' Model::exists requires the id argument') ) ;
1053+ cb ( new Error ( g . f ( '{{ Model::exists}} requires the {{id}} argument') ) ) ;
10531054 } ) ;
10541055 }
10551056 return cb . promise ;
@@ -1111,7 +1112,7 @@ DataAccessObject.findById = function findById(id, filter, options, cb) {
11111112 return cb . promise ;
11121113 } else if ( id == null || id === '' ) {
11131114 process . nextTick ( function ( ) {
1114- cb ( new Error ( ' Model::findById requires the id argument') ) ;
1115+ cb ( new Error ( g . f ( '{{ Model::findById}} requires the {{id}} argument') ) ) ;
11151116 } ) ;
11161117 } else {
11171118 var query = byIdQuery ( this , id ) ;
@@ -1184,7 +1185,7 @@ function convertNullToNotFoundError(ctx, cb) {
11841185
11851186 var modelName = ctx . method . sharedClass . name ;
11861187 var id = ctx . getArgByName ( 'id' ) ;
1187- var msg = 'Unknown "' + modelName + '" id "' + id + '".' ;
1188+ var msg = g . f ( 'Unknown "%s" {{id}} "%s".' , modelName , id ) ;
11881189 var error = new Error ( msg ) ;
11891190 error . statusCode = error . status = 404 ;
11901191 cb ( error ) ;
@@ -1242,22 +1243,22 @@ DataAccessObject._normalize = function(filter) {
12421243 }
12431244 var err = null ;
12441245 if ( ( typeof filter !== 'object' ) || Array . isArray ( filter ) ) {
1245- err = new Error ( util . format ( 'The query filter %j is not an object' , filter ) ) ;
1246+ err = new Error ( g . f ( util . format ( 'The query filter %j is not an {{ object}} ' , filter ) ) ) ;
12461247 err . statusCode = 400 ;
12471248 throw err ;
12481249 }
12491250 if ( filter . limit || filter . skip || filter . offset ) {
12501251 var limit = Number ( filter . limit || 100 ) ;
12511252 var offset = Number ( filter . skip || filter . offset || 0 ) ;
12521253 if ( isNaN ( limit ) || limit <= 0 || Math . ceil ( limit ) !== limit ) {
1253- err = new Error ( util . format ( 'The limit parameter %j is not valid' ,
1254- filter . limit ) ) ;
1254+ err = new Error ( g . f ( util . format ( 'The {{ limit}} parameter %j is not valid' ,
1255+ filter . limit ) ) ) ;
12551256 err . statusCode = 400 ;
12561257 throw err ;
12571258 }
12581259 if ( isNaN ( offset ) || offset < 0 || Math . ceil ( offset ) !== offset ) {
1259- err = new Error ( util . format ( 'The offset/skip parameter %j is not valid' ,
1260- filter . skip || filter . offset ) ) ;
1260+ err = new Error ( g . f ( util . format ( 'The {{ offset/skip}} parameter %j is not valid' ,
1261+ filter . skip || filter . offset ) ) ) ;
12611262 err . statusCode = 400 ;
12621263 throw err ;
12631264 }
@@ -1288,7 +1289,7 @@ DataAccessObject._normalize = function(filter) {
12881289 if ( dir === 'ASC' || dir === 'DESC' ) {
12891290 token = parts [ 0 ] + ' ' + dir ;
12901291 } else {
1291- err = new Error ( util . format ( 'The order %j has invalid direction' , token ) ) ;
1292+ err = new Error ( g . f ( util . format ( 'The {{ order}} %j has invalid direction' , token ) ) ) ;
12921293 err . statusCode = 400 ;
12931294 throw err ;
12941295 }
@@ -1324,7 +1325,7 @@ DataAccessObject._normalize = function(filter) {
13241325function DateType ( arg ) {
13251326 var d = new Date ( arg ) ;
13261327 if ( isNaN ( d . getTime ( ) ) ) {
1327- throw new Error ( 'Invalid date: ' + arg ) ;
1328+ throw new Error ( g . f ( 'Invalid date: %s' , arg ) ) ;
13281329 }
13291330 return d ;
13301331}
@@ -1365,7 +1366,7 @@ DataAccessObject._coerce = function(where) {
13651366
13661367 var err ;
13671368 if ( typeof where !== 'object' || Array . isArray ( where ) ) {
1368- err = new Error ( util . format ( 'The where clause %j is not an object' , where ) ) ;
1369+ err = new Error ( g . f ( util . format ( 'The where clause %j is not an {{ object}} ' , where ) ) ) ;
13691370 err . statusCode = 400 ;
13701371 throw err ;
13711372 }
@@ -1380,7 +1381,7 @@ DataAccessObject._coerce = function(where) {
13801381 self . _coerce ( clauses [ k ] ) ;
13811382 }
13821383 } else {
1383- err = new Error ( util . format ( 'The %s operator has invalid clauses %j' , p , clauses ) ) ;
1384+ err = new Error ( g . f ( util . format ( 'The %s operator has invalid clauses %j' , p , clauses ) ) ) ;
13841385 err . statusCode = 400 ;
13851386 throw err ;
13861387 }
@@ -1439,22 +1440,22 @@ DataAccessObject._coerce = function(where) {
14391440 case 'inq' :
14401441 case 'nin' :
14411442 if ( ! Array . isArray ( val ) ) {
1442- err = new Error ( util . format ( 'The %s property has invalid clause %j' , p , where [ p ] ) ) ;
1443+ err = new Error ( g . f ( util . format ( 'The %s property has invalid clause %j' , p , where [ p ] ) ) ) ;
14431444 err . statusCode = 400 ;
14441445 throw err ;
14451446 }
14461447 break ;
14471448 case 'between' :
14481449 if ( ! Array . isArray ( val ) || val . length !== 2 ) {
1449- err = new Error ( util . format ( 'The %s property has invalid clause %j' , p , where [ p ] ) ) ;
1450+ err = new Error ( g . f ( util . format ( 'The %s property has invalid clause %j' , p , where [ p ] ) ) ) ;
14501451 err . statusCode = 400 ;
14511452 throw err ;
14521453 }
14531454 break ;
14541455 case 'like' :
14551456 case 'nlike' :
14561457 if ( ! ( typeof val === 'string' || val instanceof RegExp ) ) {
1457- err = new Error ( util . format ( 'The %s property has invalid clause %j' , p , where [ p ] ) ) ;
1458+ err = new Error ( g . f ( util . format ( 'The %s property has invalid clause %j' , p , where [ p ] ) ) ) ;
14581459 err . statusCode = 400 ;
14591460 throw err ;
14601461 }
@@ -2011,7 +2012,7 @@ DataAccessObject.deleteById = function deleteById(id, options, cb) {
20112012 return cb . promise ;
20122013 } else if ( id == null || id === '' ) {
20132014 process . nextTick ( function ( ) {
2014- cb ( new Error ( ' Model::deleteById requires the id argument') ) ;
2015+ cb ( new Error ( g . f ( '{{ Model::deleteById}} requires the {{id}} argument') ) ) ;
20152016 } ) ;
20162017 return cb . promise ;
20172018 }
@@ -2022,7 +2023,7 @@ DataAccessObject.deleteById = function deleteById(id, options, cb) {
20222023 if ( err ) return cb ( err ) ;
20232024 var deleted = info && info . count > 0 ;
20242025 if ( Model . settings . strictDelete && ! deleted ) {
2025- err = new Error ( 'No instance with id ' + id + ' found for ' + Model . modelName ) ;
2026+ err = new Error ( g . f ( 'No instance with {{id}} %s found for %s' , id , Model . modelName ) ) ;
20262027 err . code = 'NOT_FOUND' ;
20272028 err . statusCode = 404 ;
20282029 return cb ( err ) ;
@@ -2485,7 +2486,7 @@ DataAccessObject.prototype.remove =
24852486 if ( err ) return cb ( err , false ) ;
24862487 var deleted = info && info . count > 0 ;
24872488 if ( Model . settings . strictDelete && ! deleted ) {
2488- err = new Error ( 'No instance with id ' + id + ' found for ' + Model . modelName ) ;
2489+ err = new Error ( g . f ( 'No instance with {{id}} %s found for %s' , id , Model . modelName ) ) ;
24892490 err . code = 'NOT_FOUND' ;
24902491 err . statusCode = 404 ;
24912492 return cb ( err , false ) ;
@@ -2509,7 +2510,7 @@ DataAccessObject.prototype.remove =
25092510 if ( err ) return cb ( err ) ;
25102511 var deleted = info && info . count > 0 ;
25112512 if ( Model . settings . strictDelete && ! deleted ) {
2512- err = new Error ( 'No instance with id ' + id + ' found for ' + Model . modelName ) ;
2513+ err = new Error ( g . f ( 'No instance with {{id}} %s found for %s' , id , Model . modelName ) ) ;
25132514 err . code = 'NOT_FOUND' ;
25142515 err . statusCode = 404 ;
25152516 return cb ( err ) ;
@@ -2654,8 +2655,8 @@ DataAccessObject.replaceById = function(id, data, options, cb) {
26542655 var hookState = { } ;
26552656
26562657 if ( id !== data [ pkName ] ) {
2657- var err = new Error ( 'id property (' + pkName + ' ) ' +
2658- 'cannot be updated from ' + id + ' to ' + data [ pkName ] ) ;
2658+ var err = new Error ( g . f ( '{{id}} property (%s ) ' +
2659+ 'cannot be updated from %s to %s' , pkName , id , data [ pkName ] ) ) ;
26592660 err . statusCode = 400 ;
26602661 process . nextTick ( function ( ) { cb ( err ) ; } ) ;
26612662 return cb . promise ;
@@ -2674,9 +2675,8 @@ DataAccessObject.replaceById = function(id, data, options, cb) {
26742675
26752676 if ( ctx . instance [ pkName ] !== id && ! Model . _warned . cannotOverwritePKInBeforeSaveHook ) {
26762677 Model . _warned . cannotOverwritePKInBeforeSaveHook = true ;
2677- console . warn ( 'WARNING: id property cannot be changed from ' +
2678- id + ' to ' + inst [ pkName ] + ' for model:' + Model . modelName +
2679- ' in \'before save\' operation hook' ) ;
2678+ g . warn ( 'WARNING: {{id}} property cannot be changed from %s to %s for model:%s ' +
2679+ 'in {{\'before save\'}} operation hook' , id , inst [ pkName ] , Model . modelName ) ;
26802680 }
26812681
26822682 data = inst . toObject ( false ) ;
@@ -2732,9 +2732,9 @@ DataAccessObject.replaceById = function(id, data, options, cb) {
27322732
27332733 if ( ctx . data [ pkName ] !== id && ! Model . _warned . cannotOverwritePKInLoadedHook ) {
27342734 Model . _warned . cannotOverwritePKInLoadedHook = true ;
2735- console . warn ( 'WARNING: id property cannot be changed from ' +
2736- id + ' to ' + ctx . data [ pkName ] + ' for model:' + Model . modelName +
2737- ' in \'loaded\' operation hook' ) ;
2735+ g . warn ( 'WARNING: {{id}} property cannot be changed from %s to %s for model:%s in ' +
2736+ '{{\'loaded\'}} operation hook' ,
2737+ id , ctx . data [ pkName ] , Model . modelName ) ;
27382738 }
27392739
27402740 inst . __persisted = true ;
@@ -2841,8 +2841,8 @@ function(data, options, cb) {
28412841 for ( var i = 0 , n = idNames . length ; i < n ; i ++ ) {
28422842 var idName = idNames [ i ] ;
28432843 if ( data [ idName ] !== undefined && ! idEquals ( data [ idName ] , inst [ idName ] ) ) {
2844- var err = new Error ( 'id property (' + idName + ' ) ' +
2845- 'cannot be updated from ' + inst [ idName ] + ' to ' + data [ idName ] ) ;
2844+ var err = new Error ( g . f ( '{{id}} property (%s ) ' +
2845+ 'cannot be updated from %s to %s' ) , idName , inst [ idName ] , data [ idName ] ) ;
28462846 err . statusCode = 400 ;
28472847 process . nextTick ( function ( ) {
28482848 cb ( err ) ;
0 commit comments