n8cn / packages /cli /src /controllers /dynamic-node-parameters.controller.ts
gallyga's picture
Add n8n Chinese version
aec3094
import {
OptionsRequestDto,
ResourceLocatorRequestDto,
ResourceMapperFieldsRequestDto,
ActionResultRequestDto,
} from '@n8n/api-types';
import { Post, RestController, Body } from '@n8n/decorators';
import type { INodePropertyOptions, NodeParameterValueType } from 'n8n-workflow';
import { AuthenticatedRequest } from '@/requests';
import { DynamicNodeParametersService } from '@/services/dynamic-node-parameters.service';
import { getBase } from '@/workflow-execute-additional-data';
@RestController('/dynamic-node-parameters')
export class DynamicNodeParametersController {
constructor(private readonly service: DynamicNodeParametersService) {}
@Post('/options')
async getOptions(
req: AuthenticatedRequest,
_res: Response,
@Body payload: OptionsRequestDto,
): Promise<INodePropertyOptions[]> {
const {
credentials,
currentNodeParameters,
nodeTypeAndVersion,
path,
methodName,
loadOptions,
} = payload;
const additionalData = await getBase(req.user.id, currentNodeParameters);
if (methodName) {
return await this.service.getOptionsViaMethodName(
methodName,
path,
additionalData,
nodeTypeAndVersion,
currentNodeParameters,
credentials,
);
}
if (loadOptions) {
return await this.service.getOptionsViaLoadOptions(
loadOptions,
additionalData,
nodeTypeAndVersion,
currentNodeParameters,
credentials,
);
}
return [];
}
@Post('/resource-locator-results')
async getResourceLocatorResults(
req: AuthenticatedRequest,
_res: Response,
@Body payload: ResourceLocatorRequestDto,
) {
const {
path,
methodName,
filter,
paginationToken,
credentials,
currentNodeParameters,
nodeTypeAndVersion,
} = payload;
const additionalData = await getBase(req.user.id, currentNodeParameters);
return await this.service.getResourceLocatorResults(
methodName,
path,
additionalData,
nodeTypeAndVersion,
currentNodeParameters,
credentials,
filter,
paginationToken,
);
}
@Post('/resource-mapper-fields')
async getResourceMappingFields(
req: AuthenticatedRequest,
_res: Response,
@Body payload: ResourceMapperFieldsRequestDto,
) {
const { path, methodName, credentials, currentNodeParameters, nodeTypeAndVersion } = payload;
const additionalData = await getBase(req.user.id, currentNodeParameters);
return await this.service.getResourceMappingFields(
methodName,
path,
additionalData,
nodeTypeAndVersion,
currentNodeParameters,
credentials,
);
}
@Post('/local-resource-mapper-fields')
async getLocalResourceMappingFields(
req: AuthenticatedRequest,
_res: Response,
@Body payload: ResourceMapperFieldsRequestDto,
) {
const { path, methodName, currentNodeParameters, nodeTypeAndVersion } = payload;
const additionalData = await getBase(req.user.id, currentNodeParameters);
return await this.service.getLocalResourceMappingFields(
methodName,
path,
additionalData,
nodeTypeAndVersion,
);
}
@Post('/action-result')
async getActionResult(
req: AuthenticatedRequest,
_res: Response,
@Body payload: ActionResultRequestDto,
): Promise<NodeParameterValueType> {
const {
currentNodeParameters,
nodeTypeAndVersion,
path,
credentials,
handler,
payload: actionPayload,
} = payload;
const additionalData = await getBase(req.user.id, currentNodeParameters);
return await this.service.getActionResult(
handler,
path,
additionalData,
nodeTypeAndVersion,
currentNodeParameters,
actionPayload,
credentials,
);
}
}