| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const { yup, formatYupErrors } = require('@strapi/utils'); | 
					
						
							| 
									
										
										
										
											2021-08-31 15:48:14 +02:00
										 |  |  | const constants = require('../services/constants'); | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | const handleReject = error => Promise.reject(formatYupErrors(error)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const apiTokenCreationSchema = yup | 
					
						
							|  |  |  |   .object() | 
					
						
							|  |  |  |   .shape({ | 
					
						
							|  |  |  |     name: yup | 
					
						
							|  |  |  |       .string() | 
					
						
							|  |  |  |       .min(1) | 
					
						
							|  |  |  |       .required(), | 
					
						
							|  |  |  |     description: yup.string().optional(), | 
					
						
							|  |  |  |     type: yup | 
					
						
							|  |  |  |       .string() | 
					
						
							| 
									
										
										
										
											2021-08-31 15:48:14 +02:00
										 |  |  |       .oneOf(Object.values(constants.API_TOKEN_TYPE)) | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  |       .required(), | 
					
						
							|  |  |  |   }) | 
					
						
							|  |  |  |   .noUnknown(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-27 08:19:14 +02:00
										 |  |  | const validateApiTokenCreationInput = async data => { | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  |   return apiTokenCreationSchema | 
					
						
							|  |  |  |     .validate(data, { strict: true, abortEarly: false }) | 
					
						
							|  |  |  |     .catch(handleReject); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  | const apiTokenUpdateSchema = yup | 
					
						
							|  |  |  |   .object() | 
					
						
							|  |  |  |   .shape({ | 
					
						
							|  |  |  |     name: yup | 
					
						
							|  |  |  |       .string() | 
					
						
							|  |  |  |       .min(1) | 
					
						
							| 
									
										
										
										
											2021-09-08 14:38:43 +02:00
										 |  |  |       .notNull(), | 
					
						
							|  |  |  |     description: yup.string().nullable(), | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  |     type: yup | 
					
						
							|  |  |  |       .string() | 
					
						
							|  |  |  |       .oneOf(Object.values(constants.API_TOKEN_TYPE)) | 
					
						
							| 
									
										
										
										
											2021-09-08 14:38:43 +02:00
										 |  |  |       .notNull(), | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  |   }) | 
					
						
							|  |  |  |   .noUnknown(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const validateApiTokenUpdateInput = async data => { | 
					
						
							|  |  |  |   return apiTokenUpdateSchema | 
					
						
							|  |  |  |     .validate(data, { strict: true, abortEarly: false }) | 
					
						
							|  |  |  |     .catch(handleReject); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | module.exports = { | 
					
						
							|  |  |  |   validateApiTokenCreationInput, | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  |   validateApiTokenUpdateInput, | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | }; |