Current File : //opt/imunify360/venv/lib/python3.11/site-packages/vendors_api/exceptions.py
# coding=utf-8
#
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENCE.TXT
#
"""
Module contains various exceptions raised by this api.
"""

from clcommon import FormattedException


class ErrorMessage:
    """
    Documented constants that can be
    received from vendors scripts
    """
    INTERNAL_ERROR = "InternalAPIError"
    PERMISSION_DENIED = "PermissionDenied"
    BAD_REQUEST = "BadRequest"
    NOT_FOUND = "NotFound"


class VendorScriptError(FormattedException):
    """
    Any errors related to vendors scripts.
    """
    def __init__(self, message, **context):
        super().__init__({
            'message': message,
            'context': context
        })


class UnexpectedResult(VendorScriptError):
    """
    An error that is raised in case of
    any unexpected results returned by vendors script.
    """
    pass


class MalformedError(VendorScriptError):
    """
    An error that is raised in case of
    malformed output that we cannot parse
    """
    def __init__(self, output):
        super().__init__(
            'vendor api returned invalid response that '
            'cannot be parsed with json, output: %(output)s',
            output=output
        )


class BadScriptError(VendorScriptError):
    """
    An error that is raised when we cannot
    run vendor's script for some reason.
    """
    pass


class NotImplementedByVendor(VendorScriptError):
    """
    Raised when we try to start script that is
    not implemented by vendor
    """
    def __init__(self, command):
        super().__init__(
            "Command `%(command)s` is not implemented "
            "in integration scripts. Please, implement it and try again.",
            command=command
        )


class _VendorApiFailed(VendorScriptError):
    """
    Bunch of api errors returned by vendors scripts
    """
    def __init__(self, message):
        super().__init__(message=message)


class InternalError(_VendorApiFailed):
    """
    n case when data is temporarily unavailable
    due to internal errors in the integration script
    (database unavailable or something like that)
    """
    pass


class PermissionDenied(_VendorApiFailed):
    """
    In case when data is unavailable due to restricted
    access of a user that called the script
    """
    pass


class BadRequest(_VendorApiFailed):
    """
    In case when known to be false arguments are passed
    to the utility.
    """
    pass


class NotFound(_VendorApiFailed):
    """
    In case when during data filtering the target entity
    doesn't exist in the control panel
    """
    pass


class VendorApiMalformedData(VendorScriptError):
    """
    Raised when vendor script returns bad data.
    """
    def __init__(self, error):
        super().__init__(
            "Integration script returned invalid response "
            "which is not accepted by internal schema check. See error below.\n"
            "%(error)s",
            error=error
        )
Bornolipi, Author at Bornolipi - বর্ণলিপি
Bornolipi
Bornolipi

Augmented Reality (AR) কিভাবে শিশুদের পড়াশোনায় সাহায্য করে?

আজকের আধুনিক শিক্ষাব্যবস্থায়, Augmented Reality (AR) নতুন করে পড়াশোনার অভিজ্ঞতা নিয়ে আসছে। বাচ্চারা এখন কেবল বই পড়ে বা ছবি দেখে শিখছে না, বরং AR technology-র মাধ্যমে তাদের শেখার journey...
Bornolipi
Bornolipi

শিশুদের শেখার অভিজ্ঞতা বাড়াতে কীভাবে প্রযুক্তি সহায়ক হতে পারে?

আজকের ডিজিটাল যুগে, আমাদের সন্তানদের শেখার অভিজ্ঞতা আরও সমৃদ্ধ করতে প্রযুক্তি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করছে। Educational apps, Augmented Reality (AR), এবং অনলাইন learning platforms বাচ্চাদের শেখার পদ্ধতিকে আরও...