void run()

in src/com/epam/digital/data/platform/pipelines/stages/impl/dataplatform/ImportMockIntegrations.groovy [29:77]


    void run() {
        if (context.registryRegulations.deployStatus("import-mock-integrations", "${RegulationType.MOCK_INTEGRATIONS.value}")
                || context.getParameterValue("FULL_DEPLOY", "false").toBoolean()) {
            String dirPath = "mock-integrations"
            String wiremockUrlMappings = "http://wiremock:9021/__admin/mappings"
            try {
                def files = context.script.findFiles(glob: 'mock-integrations/*.json')
                boolean filesExists = files.length > 0
                if (filesExists) {
                    context.logger.info("Deleting old mappings")
                    context.script.httpRequest(
                            httpMode: 'DELETE',
                            validResponseCodes: '200',
                            url: wiremockUrlMappings,
                            quiet: true
                    )
                    files.each {
                        String formJsonContent = context.script.readFile(file: "${dirPath}/${it.name}", encoding: "UTF-8")
                        context.logger.info("Importing mapping from file ${it.name}")
                        def response = context.script.httpRequest(
                                contentType: 'APPLICATION_JSON_UTF8',
                                httpMode: 'POST',
                                requestBody: formJsonContent,
                                validResponseCodes: '200,422',
                                url: wiremockUrlMappings + "/import"
                        )
                        if (response.status.equals(422)) {
                            String msgResponse = new JsonSlurperClassic().parseText(response.getContent())
                            context.logger.error("Something with mapping ${it.name}. Response: ${msgResponse}")
                        }
                    }
                    context.logger.info("Saving mappings...")
                    context.script.httpRequest(
                            httpMode: 'POST',
                            url: wiremockUrlMappings + "/save",
                            quiet: true
                    )
                    if (!context.getParameterValue("FULL_DEPLOY", "false").toBoolean()) {
                        context.registryRegulations.getChangedStatusOrFiles("save", "import-mock-integrations",
                                "--file ${context.getWorkDir()}/${RegulationType.MOCK_INTEGRATIONS.value}")
                    }
                }
            } catch (any) {
                context.script.error("Something went wrong while importing mappings!")
            }
        } else {
            context.logger.info("Skip import-mock-integrations due to no changes")
        }
    }