registerControllers method

void registerControllers()

Registers all Azure controllers in the container.

Implementation

void registerControllers() {
  // Extract regular and commandable Azure Function controllers from references
  final controllers = references?.getOptional<IAzureFunctionController>(
      Descriptor("*", "controller", "azurefunc", "*", "*"));
  final cmdControllers = references?.getOptional<IAzureFunctionController>(
      Descriptor("*", "controller", "commandable-azurefunc", "*", "*"));
  if (cmdControllers != null) {
    controllers?.addAll(cmdControllers);
  }

  if (controllers != null && controllers.isNotEmpty) {
    // Register actions defined in those controllers
    for (var controller in controllers) {
      // Check if the controller implements required interface
      // ignore: unnecessary_type_check
      if (controller.getActions is! Function) continue;

      final actions = controller.getActions();
      for (var action in actions) {
        registerAction(action.cmd, action.schema, action.action!);
      }
    }
  }
}