We decided that it is probably not worth translating the codes. Please
disregard this part of the patch.
Part 1, translating the messages, is still valid.
On 11/18/2011 08:45 AM, Richard Su wrote:
---
src/app/views/api/error.xml.haml | 2 +-
src/config/locales/en.yml | 16 ++++++
src/lib/exceptions.rb | 109 ++++++++++++++++++++++++++++++++------
3 files changed, 110 insertions(+), 17 deletions(-)
diff --git a/src/app/views/api/error.xml.haml b/src/app/views/api/error.xml.haml
index 15d9efd..0ef3597 100644
--- a/src/app/views/api/error.xml.haml
+++ b/src/app/views/api/error.xml.haml
@@ -1,4 +1,4 @@
!!!XML
%error
- %code=error.class.name.demodulize
+ %code=error.code_name
%message=error.message
\ No newline at end of file
diff --git a/src/config/locales/en.yml b/src/config/locales/en.yml
index 24b791e..d670042 100644
--- a/src/config/locales/en.yml
+++ b/src/config/locales/en.yml
@@ -1025,6 +1025,22 @@ en:
new:
create_new: Create a new Realm Mapping
api:
+ error_codes:
+ build_delete_failure: BuildDeleteFailure
+ build_not_found: BuildNotFound
+ image_delete_failure: ImageDeleteFailure
+ image_not_found: ImageNotFound
+ insufficient_parameters_supplied: InsufficientParametersSupplied
+ parameter_data_incorrect: ParameterDataIncorrect
+ push_error: PushError
+ provider_account_not_found: ProviderAccountNotFound
+ provider_image_delete_failure: ProviderImageDeleteFailure
+ provider_image_not_found: ProviderImageNotFound
+ provider_image_status_not_found: ProviderImageStatusNotFound
+ target_image_delete_failure: TargetImageDeleteFailure
+ target_image_not_found: TargetImageNotFound
+ target_image_status_not_found: TargetImageStatusNotFound
+ target_not_found: TargetNotFound
error_messages:
build_not_found: Could not find Build %{build}
image_not_found: Could not find Image %{image}
diff --git a/src/lib/exceptions.rb b/src/lib/exceptions.rb
index af196cf..2ad9109 100644
--- a/src/lib/exceptions.rb
+++ b/src/lib/exceptions.rb
@@ -4,28 +4,105 @@ module Aeolus
class Error< StandardError
attr_reader :status
attr_reader :message
+ attr_reader :code_name
- def initialize(status, message = nil)
+ def initialize(code_name, status, message = nil)
@status = status
@message = message
+ @code_name = code_name
+ end
+ end
+
+ class BuildDeleteFailure< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.build_delete_failure"), status,
message)
+ end
+ end
+
+ class BuildNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.build_not_found"), status, message)
+ end
+ end
+
+ class ImageDeleteFailure< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.image_delete_failure"), status,
message)
+ end
+ end
+
+ class ImageNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.image_not_found"), status, message)
+ end
+ end
+
+ class InsufficientParametersSupplied< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.insufficient_parameters_supplied"),
status, message)
+ end
+ end
+
+ class ParameterDataIncorrect< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.parameter_data_incorrect"), status,
message)
+ end
+ end
+
+ class PushError< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.push_error"), status, message)
+ end
+ end
+
+ class ProviderAccountNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.provider_account_not_found"), status,
message)
+ end
+ end
+
+ class ProviderImageDeleteFailure< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.provider_image_delete_failure"),
status, message)
+ end
+ end
+
+ class ProviderImageNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.provider_image_not_found"), status,
message)
+ end
+ end
+
+ class ProviderImageStatusNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.provider_image_status_not_found"),
status, message)
+ end
+ end
+
+ class TargetImageDeleteFailure< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.target_image_delete_failure"),
status, message)
+ end
+ end
+
+ class TargetImageNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.target_image_not_found"), status,
message)
+ end
+ end
+
+ class TargetImageStatusNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.target_image_status_not_found"),
status, message)
+ end
+ end
+
+ class TargetNotFound< Error
+ def initialize(status, message = nil)
+ super(I18n::t("api.error_codes.target_not_found"), status, message)
end
end
- class BuildDeleteFailure< Error; end
- class BuildNotFound< Error; end
- class ImageDeleteFailure< Error; end
- class ImageNotFound< Error; end
- class InsufficientParametersSupplied< Error; end
- class ParameterDataIncorrect< Error; end
- class PushError< Error; end
- class ProviderAccountNotFound< Error; end
- class ProviderImageDeleteFailure< Error; end
- class ProviderImageNotFound< Error; end
- class ProviderImageStatusNotFound< Error; end
- class TargetImageDeleteFailure< Error; end
- class TargetImageNotFound< Error; end
- class TargetImageStatusNotFound< Error; end
- class TargetNotFound< Error; end
end
end
end