All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.swagger.transform.migrate.V11ApiDeclarationMigrator Maven / Gradle / Ivy

There is a newer version: 1.0.71
Show newest version
package io.swagger.transform.migrate;

import com.fasterxml.jackson.databind.JsonNode;
import com.github.fge.jackson.jsonpointer.JsonPointer;
import io.swagger.transform.util.MutableJsonTree;
import io.swagger.transform.util.SwaggerMigrationException;

import javax.annotation.Nonnull;

import static io.swagger.transform.util.SwaggerMigrators.membersToString;
import static io.swagger.transform.util.SwaggerMigrators.patchFromResource;

/**
 * Migrator for a complete 1.1 API declaration
 */
public final class V11ApiDeclarationMigrator
        implements SwaggerMigrator {
    private final SwaggerMigrator migrator = new ApiOperationMigrator();

    @Nonnull
    @Override
    public JsonNode migrate(@Nonnull final JsonNode input)
            throws SwaggerMigrationException {
        final MutableJsonTree tree = new MutableJsonTree(input);

        tree.applyMigrator(membersToString("swaggerVersion", "apiVersion"));
        tree.applyMigrator(patchFromResource("/patches/v1.1/versionChange" +
                ".json"));

        tree.setPointer(JsonPointer.of("apis"));
        tree.applyMigratorToElements(migrator);

        return tree.getBaseNode();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy