override fun executeRequest()

in reports-scheduler/src/main/kotlin/org/opensearch/reportsscheduler/resthandler/ReportDefinitionRestHandler.kt [124:159]


    override fun executeRequest(request: RestRequest, client: NodeClient): RestChannelConsumer {
        return when (request.method()) {
            POST -> RestChannelConsumer {
                Metrics.REPORT_DEFINITION_CREATE_TOTAL.counter.increment()
                Metrics.REPORT_DEFINITION_CREATE_INTERVAL_COUNT.counter.increment()
                client.execute(CreateReportDefinitionAction.ACTION_TYPE,
                    CreateReportDefinitionRequest(request.contentParserNextToken()),
                    RestResponseToXContentListener(it))
            }
            PUT -> RestChannelConsumer {
                Metrics.REPORT_DEFINITION_UPDATE_TOTAL.counter.increment()
                Metrics.REPORT_DEFINITION_UPDATE_INTERVAL_COUNT.counter.increment()
                client.execute(
                    UpdateReportDefinitionAction.ACTION_TYPE,
                    UpdateReportDefinitionRequest(request.contentParserNextToken(), request.param(REPORT_DEFINITION_ID_FIELD)),
                    RestResponseToXContentListener(it))
            }
            GET -> RestChannelConsumer {
                Metrics.REPORT_DEFINITION_INFO_TOTAL.counter.increment()
                Metrics.REPORT_DEFINITION_INFO_INTERVAL_COUNT.counter.increment()
                client.execute(GetReportDefinitionAction.ACTION_TYPE,
                    GetReportDefinitionRequest(request.param(REPORT_DEFINITION_ID_FIELD)),
                    RestResponseToXContentListener(it))
            }
            DELETE -> RestChannelConsumer {
                Metrics.REPORT_DEFINITION_DELETE_TOTAL.counter.increment()
                Metrics.REPORT_DEFINITION_DELETE_INTERVAL_COUNT.counter.increment()
                client.execute(DeleteReportDefinitionAction.ACTION_TYPE,
                    DeleteReportDefinitionRequest(request.param(REPORT_DEFINITION_ID_FIELD)),
                    RestResponseToXContentListener(it))
            }
            else -> RestChannelConsumer {
                it.sendResponse(BytesRestResponse(RestStatus.METHOD_NOT_ALLOWED, "${request.method()} is not allowed"))
            }
        }
    }