| 
									
										
										
										
											2020-10-27 11:27:17 +01:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-29 12:00:25 +02:00
										 |  |  | const errorTypes = { | 
					
						
							|  |  |  |   ENTITY_TOO_LARGE: 'entityTooLarge', | 
					
						
							|  |  |  |   UNKNOWN_ERROR: 'unknownError', | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const entityTooLarge = message => { | 
					
						
							|  |  |  |   const error = new Error(message || 'Entity too large'); | 
					
						
							|  |  |  |   error.type = errorTypes.ENTITY_TOO_LARGE; | 
					
						
							|  |  |  |   return error; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | entityTooLarge.type = errorTypes.ENTITY_TOO_LARGE; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const unknownError = message => { | 
					
						
							|  |  |  |   const error = new Error(message || 'Unknown error'); | 
					
						
							|  |  |  |   error.type = errorTypes.UNKNOWN_ERROR; | 
					
						
							|  |  |  |   return error; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | unknownError.type = errorTypes.UNKNOWN_ERROR; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const is = (err, errorFactory) => { | 
					
						
							|  |  |  |   return err.type && err.type === errorFactory.type; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const convertToStrapiError = err => { | 
					
						
							|  |  |  |   if (is(err, entityTooLarge)) { | 
					
						
							|  |  |  |     return strapi.errors.entityTooLarge('FileTooBig', { | 
					
						
							|  |  |  |       errors: [ | 
					
						
							|  |  |  |         { | 
					
						
							|  |  |  |           id: 'Upload.status.sizeLimit', | 
					
						
							|  |  |  |           message: 'file is bigger than the limit size!', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |       ], | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     strapi.log.error(err); | 
					
						
							|  |  |  |     return strapi.errors.badImplementation(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = { | 
					
						
							|  |  |  |   errors: { | 
					
						
							|  |  |  |     entityTooLarge, | 
					
						
							|  |  |  |     unknownError, | 
					
						
							|  |  |  |   }, | 
					
						
							|  |  |  |   convertToStrapiError, | 
					
						
							|  |  |  | }; |