diff options
| author | Zog | 2018-05-30 11:40:45 +0200 |
|---|---|---|
| committer | Zog | 2018-05-30 11:40:45 +0200 |
| commit | 4be2635b5b869b9c9e0fd9a970f3de517284dac8 (patch) | |
| tree | c0a68844bf69f8bc6d020df25b85da1e45da0836 /app | |
| parent | dc8218759eff1ca2d492c96618628f1681e6dfdb (diff) | |
| download | chouette-core-7225-new-api-endpoints.tar.bz2 | |
Refs #7225; New api endpoints for IEV7225-new-api-endpoints
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 |
