147 lines
3.4 KiB
TypeScript
147 lines
3.4 KiB
TypeScript
|
|
import * as plugins from '../plugins.js';
|
||
|
|
import type * as authInterfaces from '../data/auth.js';
|
||
|
|
import type { IMergedRoute, IRouteWarning } from '../data/route-management.js';
|
||
|
|
import type { IRouteConfig } from '@push.rocks/smartproxy';
|
||
|
|
|
||
|
|
// ============================================================================
|
||
|
|
// Route Management Endpoints
|
||
|
|
// ============================================================================
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get all merged routes (hardcoded + programmatic) with warnings.
|
||
|
|
*/
|
||
|
|
export interface IReq_GetMergedRoutes extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_GetMergedRoutes
|
||
|
|
> {
|
||
|
|
method: 'getMergedRoutes';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
routes: IMergedRoute[];
|
||
|
|
warnings: IRouteWarning[];
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new programmatic route.
|
||
|
|
*/
|
||
|
|
export interface IReq_CreateRoute extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_CreateRoute
|
||
|
|
> {
|
||
|
|
method: 'createRoute';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
route: IRouteConfig;
|
||
|
|
enabled?: boolean;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
storedRouteId?: string;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Update a programmatic route.
|
||
|
|
*/
|
||
|
|
export interface IReq_UpdateRoute extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_UpdateRoute
|
||
|
|
> {
|
||
|
|
method: 'updateRoute';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
id: string;
|
||
|
|
route?: Partial<IRouteConfig>;
|
||
|
|
enabled?: boolean;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Delete a programmatic route.
|
||
|
|
*/
|
||
|
|
export interface IReq_DeleteRoute extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_DeleteRoute
|
||
|
|
> {
|
||
|
|
method: 'deleteRoute';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
id: string;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set an override on a hardcoded route (disable/enable by name).
|
||
|
|
*/
|
||
|
|
export interface IReq_SetRouteOverride extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_SetRouteOverride
|
||
|
|
> {
|
||
|
|
method: 'setRouteOverride';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
routeName: string;
|
||
|
|
enabled: boolean;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Remove an override from a hardcoded route (restore default behavior).
|
||
|
|
*/
|
||
|
|
export interface IReq_RemoveRouteOverride extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_RemoveRouteOverride
|
||
|
|
> {
|
||
|
|
method: 'removeRouteOverride';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
routeName: string;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Toggle a programmatic route on/off by id.
|
||
|
|
*/
|
||
|
|
export interface IReq_ToggleRoute extends plugins.typedrequestInterfaces.implementsTR<
|
||
|
|
plugins.typedrequestInterfaces.ITypedRequest,
|
||
|
|
IReq_ToggleRoute
|
||
|
|
> {
|
||
|
|
method: 'toggleRoute';
|
||
|
|
request: {
|
||
|
|
identity?: authInterfaces.IIdentity;
|
||
|
|
apiToken?: string;
|
||
|
|
id: string;
|
||
|
|
enabled: boolean;
|
||
|
|
};
|
||
|
|
response: {
|
||
|
|
success: boolean;
|
||
|
|
message?: string;
|
||
|
|
};
|
||
|
|
}
|