buildContextMethod method
Converts an ApiMethod schema entry into a ContextMethod.
Params/body/query sections are expanded into nested field trees that can
generate request models. The hasUseCase flag is derived from the
presence of any params/body/query.
Implementation
ContextMethod buildContextMethod(MapEntry<String, ApiMethod> method) {
final paramsFields = <NestedContextField>[],
bodyFields = <NestedContextField>[],
queryFields = <NestedContextField>[];
final params = buildContextFields(method.value.params ?? {}, paramsFields);
final body = buildContextFields(method.value.body ?? {}, bodyFields);
final query = buildContextFields(method.value.query ?? {}, queryFields);
if (params.isNotEmpty) {
paramsFields.add(
NestedContextField(
name: method.key.camelCaseToPascalCase(),
properties: params,
isRoot: true,
),
);
}
if (body.isNotEmpty) {
bodyFields.add(
NestedContextField(
name: method.key.camelCaseToPascalCase(),
properties: body,
isRoot: true,
),
);
}
if (query.isNotEmpty) {
queryFields.add(
NestedContextField(
name: method.key.camelCaseToPascalCase(),
properties: query,
isRoot: true,
),
);
}
return ContextMethod(
methodName: method.key,
methodNamePascalCase: method.key.camelCaseToPascalCase(),
params: paramsFields,
body: bodyFields,
query: queryFields,
hasParams: paramsFields.isNotEmpty,
hasBody: bodyFields.isNotEmpty,
hasQuery: queryFields.isNotEmpty,
hasUseCase: paramsFields.isNotEmpty || bodyFields.isNotEmpty || queryFields.isNotEmpty,
);
}