override fun process()

in dsl/spring/spring-lang-parser/src/main/kotlin/io/kotless/parser/spring/processor/route/DynamicRoutesProcessor.kt [23:47]


    override fun process(files: Set<KtFile>, binding: BindingContext, context: ProcessorContext) {
        processClassesOrObjects(files, binding) { classOrObj, _, _ ->
            classOrObj.visitNamedFunctions(filter = { SpringAnnotationUtils.isHTTPHandler(binding, it) }) { el ->
                val entrypoint = context.output.get(EntrypointProcessor).entrypoint

                for (method in SpringAnnotationUtils.getMethods(binding, el)) {
                    val path = SpringAnnotationUtils.getRoutePath(binding, el)
                    val permissions = PermissionsProcessor.process(el, binding, context)
                    val name = el.fqName!!.asString() + "_" + method.name

                    val key = TypedStorage.Key<Lambda>()
                    val function = Lambda(name, context.jar, entrypoint, context.lambda, permissions)

                    context.resources.register(key, function)
                    context.routes.register(API.DynamicRoute(method, path, key))

                    if (context.config.optimization.autoWarm.enable) {
                        context.events.register(
                            Events.Scheduled(name, everyNMinutes(context.config.optimization.autoWarm.minutes), ScheduledEventType.Autowarm, key)
                        )
                    }
                }
            }
        }
    }