SwaggerController.fromMeta constructor

SwaggerController.fromMeta(
  1. MetaRoute route,
  2. SchemaRegistry registry
)

Implementation

factory SwaggerController.fromMeta(MetaRoute route, SchemaRegistry registry) {
  var isHidden = false;
  String? tagOverride;

  route.annotationsFor(
    onMatch: [
      OnMatch(
        classType: ApiHidden,
        package: 'revali_swagger_annotations',
        convert: (object, annotation) {
          isHidden = true;
        },
      ),
      OnMatch(
        classType: ApiTag,
        package: 'revali_swagger_annotations',
        convert: (object, annotation) {
          tagOverride = object.getField('name')?.toStringValue();
        },
      ),
    ],
  );

  final simpleName = _simplifyControllerName(route.className);

  return SwaggerController(
    name: route.className,
    path: route.path,
    tag: tagOverride ?? simpleName,
    isHidden: isHidden,
    methods: route.methods
        .map((m) => SwaggerMethod.fromMeta(m, simpleName, registry))
        .toList(),
  );
}