| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-03 19:31:57 +01:00
										 |  |  | const { yup, validateYupSchema } = 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 apiTokenCreationSchema = yup | 
					
						
							|  |  |  |   .object() | 
					
						
							|  |  |  |   .shape({ | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  |     name: yup.string().min(1).required(), | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  |     description: yup.string().optional(), | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  |     type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).required(), | 
					
						
							| 
									
										
										
										
											2022-08-18 12:20:45 +02:00
										 |  |  |     permissions: yup.array().of(yup.string()).nullable(), | 
					
						
							| 
									
										
										
										
											2023-02-06 10:13:17 +01:00
										 |  |  |     lifespan: yup.number().min(1).oneOf(Object.values(constants.API_TOKEN_LIFESPANS)).nullable(), | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  |   }) | 
					
						
							| 
									
										
										
										
											2022-08-25 12:01:52 +02:00
										 |  |  |   .noUnknown() | 
					
						
							|  |  |  |   .strict(); | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  | const apiTokenUpdateSchema = yup | 
					
						
							|  |  |  |   .object() | 
					
						
							|  |  |  |   .shape({ | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  |     name: yup.string().min(1).notNull(), | 
					
						
							| 
									
										
										
										
											2021-09-08 14:38:43 +02:00
										 |  |  |     description: yup.string().nullable(), | 
					
						
							| 
									
										
										
										
											2022-08-08 23:33:39 +02:00
										 |  |  |     type: yup.string().oneOf(Object.values(constants.API_TOKEN_TYPE)).notNull(), | 
					
						
							| 
									
										
										
										
											2022-08-18 12:20:45 +02:00
										 |  |  |     permissions: yup.array().of(yup.string()).nullable(), | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  |   }) | 
					
						
							| 
									
										
										
										
											2022-08-25 12:01:52 +02:00
										 |  |  |   .noUnknown() | 
					
						
							|  |  |  |   .strict(); | 
					
						
							| 
									
										
										
										
											2021-09-06 13:30:52 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | module.exports = { | 
					
						
							| 
									
										
										
										
											2021-11-03 19:31:57 +01:00
										 |  |  |   validateApiTokenCreationInput: validateYupSchema(apiTokenCreationSchema), | 
					
						
							|  |  |  |   validateApiTokenUpdateInput: validateYupSchema(apiTokenUpdateSchema), | 
					
						
							| 
									
										
										
										
											2021-08-26 14:37:55 +02:00
										 |  |  | }; |