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

io.streamnative.pulsar.handlers.kop.schemaregistry.exceptions.Errors Maven / Gradle / Ivy

There is a newer version: 4.0.0.4
Show newest version
/**
 * Copyright (c) 2019 - 2024 StreamNative, Inc.. All Rights Reserved.
 */
/**
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.streamnative.pulsar.handlers.kop.schemaregistry.exceptions;

/**
 * Migrate from confluent.
 * Refer to here
 */
public class Errors {

    // HTTP 404
    public static final String SUBJECT_NOT_FOUND_MESSAGE_FORMAT = "Subject '%s' not found.";
    public static final int SUBJECT_NOT_FOUND_ERROR_CODE = 40401;
    public static final String VERSION_NOT_FOUND_MESSAGE_FORMAT = "Version %s not found.";
    public static final int VERSION_NOT_FOUND_ERROR_CODE = 40402;
    public static final String SCHEMA_NOT_FOUND_MESSAGE = "Schema not found";
    public static final String SCHEMA_NOT_FOUND_MESSAGE_FORMAT = "Schema %s not found";
    public static final int SCHEMA_NOT_FOUND_ERROR_CODE = 40403;
    public static final String SUBJECT_SOFT_DELETED_MESSAGE_FORMAT = "Subject '%s' was soft deleted."
            + "Set permanent=true to delete permanently";
    public static final int SUBJECT_SOFT_DELETED_ERROR_CODE = 40404;
    public static final String SUBJECT_NOT_SOFT_DELETED_MESSAGE_FORMAT = "Subject '%s' was not deleted "
            + "first before being permanently deleted";
    public static final int SUBJECT_NOT_SOFT_DELETED_ERROR_CODE = 40405;
    public static final String SCHEMAVERSION_SOFT_DELETED_MESSAGE_FORMAT = "Subject '%s' Version %s was soft deleted."
            + "Set permanent=true to delete permanently";
    public static final int SCHEMAVERSION_SOFT_DELETED_ERROR_CODE = 40406;
    public static final String SCHEMAVERSION_NOT_SOFT_DELETED_MESSAGE_FORMAT =
            "Subject '%s' Version %s was not deleted first before being permanently deleted";
    public static final int SCHEMAVERSION_NOT_SOFT_DELETED_ERROR_CODE = 40407;


    // HTTP 422
    public static final int INVALID_SCHEMA_ERROR_CODE = 42201;
    public static final int INVALID_VERSION_ERROR_CODE = 42202;

    public static final int REFERENCE_EXISTS_ERROR_CODE = 42206;

    public static final int INVALID_SUBJECT_ERROR_CODE = 42208;

    public static RestException subjectNotFoundException(String subject) {
        return new RestNotFoundException(
                String.format(SUBJECT_NOT_FOUND_MESSAGE_FORMAT, subject), SUBJECT_NOT_FOUND_ERROR_CODE);
    }

    public static RestException subjectSoftDeletedException(String subject) {
        return new RestNotFoundException(
                String.format(SUBJECT_SOFT_DELETED_MESSAGE_FORMAT, subject), SUBJECT_SOFT_DELETED_ERROR_CODE);
    }

    public static RestException subjectNotSoftDeletedException(String subject) {
        return new RestNotFoundException(
                String.format(SUBJECT_NOT_SOFT_DELETED_MESSAGE_FORMAT, subject), SUBJECT_NOT_SOFT_DELETED_ERROR_CODE);
    }

    public static RestException versionNotFoundException(Integer id) {
        return new RestNotFoundException(
                String.format(VERSION_NOT_FOUND_MESSAGE_FORMAT, id), VERSION_NOT_FOUND_ERROR_CODE);
    }

    public static RestException schemaNotFoundException() {
        return new RestNotFoundException(SCHEMA_NOT_FOUND_MESSAGE, SCHEMA_NOT_FOUND_ERROR_CODE);
    }

    public static RestException schemaNotFoundException(Integer id) {
        if (id == null) {
            return schemaNotFoundException();
        }
        return new RestNotFoundException(
                String.format(SCHEMA_NOT_FOUND_MESSAGE_FORMAT, id), SCHEMA_NOT_FOUND_ERROR_CODE);
    }


    public static RestInvalidVersionException invalidVersionException(String version) {
        return new RestInvalidVersionException(version);
    }

    public static RestException schemaVersionSoftDeletedException(String subject, String version) {
        return new RestNotFoundException(
                String.format(SCHEMAVERSION_SOFT_DELETED_MESSAGE_FORMAT, subject, version),
                SCHEMAVERSION_SOFT_DELETED_ERROR_CODE);
    }

    public static RestException schemaVersionNotSoftDeletedException(String subject, String version) {
        return new RestNotFoundException(
                String.format(SCHEMAVERSION_NOT_SOFT_DELETED_MESSAGE_FORMAT, subject, version),
                SCHEMAVERSION_NOT_SOFT_DELETED_ERROR_CODE);
    }

    public static RestReferenceExistsException referenceExistsException(String message) {
        return new RestReferenceExistsException(message);
    }

    public static RestInvalidSchemaException invalidSchemaException(Throwable cause) {
        return new RestInvalidSchemaException(cause.getMessage());
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy