import org.slf4j.LoggerFactory

def logger = LoggerFactory.getLogger(this.class)

def copyAndReplaceText(source, dest, Closure replaceText) {
    def text = replaceText(source.text);
    dest.write(text)
}

def fileName = "target/classes/static/api-v3.swagger.yaml"
def source = new File(fileName)
def dest = new File(fileName)

def pattern = ~/: (\d{4}\-\d{2}\-\d{2})(T\d{2}:\d{2}:\d{2}.\d{3})?(\+\d{2}:\d{2})?(\/\d{4}\-\d{2}\-\d{2})?\n/

def count = 0;
copyAndReplaceText(source, dest) {
    it.replaceAll(pattern) { _, date1, time, timezone, date2 ->
            count++
            ": '${date1}${time ?: ''}${timezone ?: ''}${date2 ?: ''}'\n"
    }
}

logger.info ("Fixed " + count + " dates in api-v3.swagger.yaml")

