| 
									
										
										
										
											2024-03-01 14:41:47 +01:00
										 |  |  | import type { Data, Modules } from '@strapi/types'; | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  | import type { errors } from '@strapi/utils'; | 
					
						
							| 
									
										
										
										
											2023-11-16 16:38:15 +01:00
										 |  |  | import { AdminRole, Permission, SanitizedAdminRole } from './shared'; | 
					
						
							| 
									
										
										
										
											2023-11-23 09:16:25 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | export type SanitizedPermission = Pick< | 
					
						
							|  |  |  |   Permission, | 
					
						
							|  |  |  |   'id' | 'action' | 'actionParameters' | 'subject' | 'properties' | 'conditions' | 
					
						
							|  |  |  | >; | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | type SanitizedAdminRoleWithUsersCount = SanitizedAdminRole & { usersCount?: number }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * GET /roles/:id/permissions - Get the permissions of a role | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export declare namespace GetPermissions { | 
					
						
							|  |  |  |   export interface Request { | 
					
						
							|  |  |  |     params: { id: string }; | 
					
						
							|  |  |  |     query: {}; | 
					
						
							|  |  |  |     body: {}; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: Permission[]; | 
					
						
							|  |  |  |     error?: errors.ApplicationError | errors.NotFoundError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-16 16:38:15 +01:00
										 |  |  | /** | 
					
						
							|  |  |  |  * PUT /roles/:id/permissions - Update the permissions of a role | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export declare namespace UpdatePermissions { | 
					
						
							|  |  |  |   export interface Request { | 
					
						
							| 
									
										
										
										
											2024-03-01 14:41:47 +01:00
										 |  |  |     params: { id: Data.ID }; | 
					
						
							| 
									
										
										
										
											2023-11-16 16:38:15 +01:00
										 |  |  |     query: {}; | 
					
						
							|  |  |  |     body: { | 
					
						
							| 
									
										
										
										
											2023-11-21 11:40:51 +00:00
										 |  |  |       permissions: Omit<Permission, 'id' | 'createdAt' | 'updatedAt' | 'actionParameters'>[]; | 
					
						
							| 
									
										
										
										
											2023-11-16 16:38:15 +01:00
										 |  |  |     }; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: SanitizedPermission[]; | 
					
						
							|  |  |  |     error?: | 
					
						
							|  |  |  |       | errors.ApplicationError | 
					
						
							|  |  |  |       | errors.NotFoundError // One of the permissions not found
 | 
					
						
							|  |  |  |       | errors.YupValidationError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * GET /roles/:id - Find a role by ID | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2023-11-21 11:40:51 +00:00
										 |  |  | export declare namespace FindRole { | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  |   export interface Request { | 
					
						
							| 
									
										
										
										
											2023-11-16 16:38:15 +01:00
										 |  |  |     params: { id: string }; | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  |     query: {}; | 
					
						
							|  |  |  |     body: {}; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: SanitizedAdminRoleWithUsersCount; | 
					
						
							|  |  |  |     error?: errors.ApplicationError | errors.NotFoundError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * GET /roles | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2023-11-21 11:40:51 +00:00
										 |  |  | export declare namespace FindRoles { | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  |   export interface Request { | 
					
						
							| 
									
										
										
										
											2024-03-01 14:41:47 +01:00
										 |  |  |     query: Modules.EntityService.Params.Pick<'admin::role', 'sort' | 'filters' | 'fields'>; | 
					
						
							| 
									
										
										
										
											2023-10-30 12:17:27 +00:00
										 |  |  |     body: {}; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: SanitizedAdminRoleWithUsersCount[]; | 
					
						
							|  |  |  |     error?: errors.ApplicationError | errors.ValidationError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2023-11-16 16:38:15 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * POST /roles - Create a role | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export declare namespace Create { | 
					
						
							|  |  |  |   export interface Request { | 
					
						
							|  |  |  |     query: {}; | 
					
						
							|  |  |  |     body: { | 
					
						
							|  |  |  |       name: string; | 
					
						
							|  |  |  |       description?: string; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: SanitizedAdminRole; | 
					
						
							|  |  |  |     error?: errors.ApplicationError | errors.YupValidationError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PUT /roles/:id - Update a role | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export declare namespace Update { | 
					
						
							|  |  |  |   export interface Request { | 
					
						
							|  |  |  |     params: { id: string }; | 
					
						
							|  |  |  |     query: {}; | 
					
						
							|  |  |  |     body: { | 
					
						
							|  |  |  |       name?: string; | 
					
						
							|  |  |  |       description?: string; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: SanitizedAdminRole; | 
					
						
							|  |  |  |     error?: errors.ApplicationError | errors.NotFoundError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * DELETE /roles/:id - Delete a role | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export declare namespace Delete { | 
					
						
							|  |  |  |   export interface Request { | 
					
						
							|  |  |  |     params: { id: string }; | 
					
						
							|  |  |  |     query: {}; | 
					
						
							|  |  |  |     body: {}; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: Omit<AdminRole, 'users' | 'permissions'> | null; | 
					
						
							|  |  |  |     error?: errors.ApplicationError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * POST /roles/batch-delete - Delete multiple roles | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | export declare namespace BatchDelete { | 
					
						
							|  |  |  |   export interface Request { | 
					
						
							|  |  |  |     query: {}; | 
					
						
							|  |  |  |     body: { | 
					
						
							|  |  |  |       ids: string[]; // Min length: 1
 | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   export interface Response { | 
					
						
							|  |  |  |     data: (Omit<AdminRole, 'users' | 'permissions'> | null)[]; | 
					
						
							|  |  |  |     error?: errors.ApplicationError | errors.YupValidationError; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |