diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/controllers/api/v1/internals/netex_exports_controller.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/app/controllers/api/v1/internals/netex_exports_controller.rb b/app/controllers/api/v1/internals/netex_exports_controller.rb new file mode 100644 index 000000000..8e69af635 --- /dev/null +++ b/app/controllers/api/v1/internals/netex_exports_controller.rb @@ -0,0 +1,51 @@ +module Api + module V1 + module Internals + class NetexExportsController < Api::V1::Internals::ApplicationController + include ControlFlow + skip_before_action :require_token, only: :upload + before_action :find_netex_export + + def upload + if authenticate_token + @netex_export.file = params[:file] + @netex_export.save! + @netex_export.successful! + @netex_export.notify_parent + render json: { + status: "ok", + message:"File successfully uploaded for #{@netex_export.type} (id: #{@netex_export.id})" + } + else + @netex_export.failed! + @netex_export.notify_parent + render_unauthorized("Access denied") + end + end + + def notify_parent + if @netex_export.notify_parent + render json: { + status: "ok", + message:"#{@netex_export.parent_type} (id: #{@netex_export.parent_id}) successfully notified at #{l(@netex_export.notified_parent_at)}" + } + else + render json: {status: "error", message: @netex_export.errors.full_messages } + end + end + + private + + def find_netex_export + @netex_export = Export::Netex.find(params[:id]) + rescue ActiveRecord::RecordNotFound + render json: { + status: "error", + message: "Record not found" + }, status: 404 + finish_action! + end + end + end + end +end |
