Module: Api::Vendor::V1::Klook::Concerns::ErrorResponses
- Extended by:
- ActiveSupport::Concern
- Includes:
- Concerns::ReservationUtils
- Included in:
- AvailabilitiesController, BookingsController, ProductsController
- Defined in:
- app/controllers/api/vendor/v1/klook/concerns/error_responses.rb
Instance Method Summary collapse
- #render_error(data = {}) ⇒ Object
- #report_error(data) ⇒ Object
- #send_notify_email(error_heading, data) ⇒ Object
Instance Method Details
#render_error(data = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/controllers/api/vendor/v1/klook/concerns/error_responses.rb', line 11 def render_error(data = {}) report_error(data) response_data = { error: data[:error], errorMessage: data[:error_message], errorDetail: data[:error_detail], productId: params[:productId], optionId: params[:optionId], availabilityId: params[:availabilityId], uuid: params[:uuid], }.compact VendorLogger.log_event(:response, params[:route], payload: response_data) render json: response_data, status: :bad_request end |
#report_error(data) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'app/controllers/api/vendor/v1/klook/concerns/error_responses.rb', line 27 def report_error(data) data[:data_snapshot] = params.to_unsafe_h.to_json error_heading = "Api:Klook:#{data[:method]}: #{data[:error_message]}" BUSINESS_LOGGER.error(error_heading, data: data, restaurant_id: params[:productId]) return if hh_reservation_inventory_errors.include?(data[:error_detail] || data[:error_message]) APMErrorHandler.report(error_heading, data: data) send_notify_email(error_heading, data) end |
#send_notify_email(error_heading, data) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 |
# File 'app/controllers/api/vendor/v1/klook/concerns/error_responses.rb', line 37 def send_notify_email(error_heading, data) return if data[:error] == ApiVendorV1::Constants::KLOOK_INVALID_PRODUCT_ID_ERROR || data[:error] == ApiVendorV1::Constants::KLOOK_INVALID_OPTION_ID_ERROR receivers = [::MERCHANT_EMAIL, ::VENDOR_TEAM_EMAIL] subject = error_heading body = <<~BODY #{data} BODY StaffMailer.notify(subject, body, receivers).deliver_later! end |