1+ import { AxiosRequestConfig } from 'axios' ;
12import { ApiResponse } from '../common/api-response' ;
23import { BaseDto } from '../common/base-dto' ;
34import { PagedList } from '../common/paged-list' ;
@@ -67,16 +68,43 @@ export interface IFiscalapiService<T extends BaseDto> {
6768 data ?: TData
6869 ) : Promise < ApiResponse < TResult > > ;
6970
71+ // /**
72+ // * Ejecuta una operación personalizada en el recurso sin necesidad de un ID específico
73+ // * @param {string } operation - Nombre de la operación
74+ // * @param {TData } data - Datos para la operación
75+ // * @returns {Promise<ApiResponse<TResult>> } Resultado de la operación
76+ // * @template TResult - Tipo de resultado esperado
77+ // * @template TData - Tipo de datos de entrada
78+ // */
79+ // executeOperation<TResult, TData>(
80+ // operation: string,
81+ // data: TData,
82+ // method: 'POST' | 'PUT' | 'DELETE'
83+ // ): Promise<ApiResponse<TResult>>;
84+
7085 /**
7186 * Ejecuta una operación personalizada en el recurso sin necesidad de un ID específico
72- * @param {string } operation - Nombre de la operación
73- * @param {TData } data - Datos para la operación
87+ * @param {OperationOptions<TData> } options - Opciones para la operación
7488 * @returns {Promise<ApiResponse<TResult>> } Resultado de la operación
7589 * @template TResult - Tipo de resultado esperado
7690 * @template TData - Tipo de datos de entrada
7791 */
78- executeOperation < TResult , TData > (
79- operation : string ,
80- data : TData
81- ) : Promise < ApiResponse < TResult > > ;
82- }
92+ executeOperation < TResult , TData = any > ( options : OperationOptions < TData > ) : Promise < ApiResponse < TResult > > ;
93+ }
94+
95+ /**
96+ * Opciones para ejecutar una operación
97+ * @template TData - Tipo de datos de entrada
98+ */
99+ export type OperationOptions < TData = any > = {
100+ /** Ruta o nombre de la operación */
101+ path : string ;
102+ /** Datos para la operación (opcional) */
103+ data ?: TData ;
104+ /** Parámetros de consulta (opcional) */
105+ queryParams ?: Record < string , string > ;
106+ /** Método HTTP a utilizar */
107+ method ?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' ;
108+ /** Configuración adicional para Axios (opcional) */
109+ config ?: AxiosRequestConfig ;
110+ }
0 commit comments