| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Module dependencies | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-14 12:15:42 +02:00
										 |  |  | module.exports = mongoose => { | 
					
						
							|  |  |  |   require('mongoose-float').loadType(mongoose); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const SchemaTypes = mongoose.Schema.Types; | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-23 22:50:10 +03:00
										 |  |  |   SchemaTypes.Decimal.prototype.cast = function (value) { | 
					
						
							|  |  |  |     return value.toString(); | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |   return { | 
					
						
							| 
									
										
										
										
											2016-07-14 12:15:42 +02:00
										 |  |  |     convertType: mongooseType => { | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |       switch (mongooseType.toLowerCase()) { | 
					
						
							|  |  |  |         case 'string': | 
					
						
							| 
									
										
										
										
											2017-11-28 13:51:50 +01:00
										 |  |  |         case 'password': | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |         case 'text': | 
					
						
							| 
									
										
										
										
											2017-11-28 16:01:50 +01:00
										 |  |  |         case 'email': | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |           return 'String'; | 
					
						
							|  |  |  |         case 'integer': | 
					
						
							|  |  |  |         case 'biginteger': | 
					
						
							| 
									
										
										
										
											2016-09-28 11:42:26 +02:00
										 |  |  |           return 'Number'; | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |         case 'float': | 
					
						
							| 
									
										
										
										
											2017-12-23 22:50:10 +03:00
										 |  |  |           return 'Float'; | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |         case 'decimal': | 
					
						
							| 
									
										
										
										
											2017-12-23 22:50:10 +03:00
										 |  |  |           return 'Decimal'; | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |         case 'date': | 
					
						
							|  |  |  |         case 'time': | 
					
						
							|  |  |  |         case 'datetime': | 
					
						
							|  |  |  |         case 'timestamp': | 
					
						
							|  |  |  |           return Date; | 
					
						
							|  |  |  |         case 'boolean': | 
					
						
							| 
									
										
										
										
											2016-09-28 11:42:26 +02:00
										 |  |  |           return 'Boolean'; | 
					
						
							| 
									
										
										
										
											2016-07-14 11:06:58 +02:00
										 |  |  |         case 'binary': | 
					
						
							|  |  |  |           return 'Buffer'; | 
					
						
							|  |  |  |         case 'uuid': | 
					
						
							|  |  |  |           return 'ObjectId'; | 
					
						
							|  |  |  |         case 'enumeration': | 
					
						
							|  |  |  |           return 'String'; | 
					
						
							|  |  |  |         case 'json': | 
					
						
							|  |  |  |           return 'Mixed'; | 
					
						
							|  |  |  |         default: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2016-09-28 11:42:26 +02:00
										 |  |  |   }; | 
					
						
							|  |  |  | }; |