diff --git a/app/models/datum/model/data_list/data_import.rb b/app/models/datum/model/data_list/data_import.rb index f886f1a..ca71272 100644 --- a/app/models/datum/model/data_list/data_import.rb +++ b/app/models/datum/model/data_list/data_import.rb @@ -1,5 +1,22 @@ +require 'write_xlsx' module Datum module Model::DataList::DataImport + extend ActiveSupport::Concern + + def template + io = StringIO.new + workbook = WriteXLSX.new(io) + + sheet = workbook.add_worksheet + sheet.write_row(0, 0, headers) + + workbook.close + io.string + end + + def headers + export.columns.values.map(&->(i){ i[:header] }) + end end end diff --git a/config/routes.rb b/config/routes.rb index 0efbb56..6cab11b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -14,14 +14,21 @@ end end namespace :panel, defaults: { namespace: 'panel' } do - resources :data_lists do - collection do - post :sync - end + resources :data_exports do member do put :update_publish patch :rebuild end + end + resources :data_imports do + member do + match :template, via: [:get, :post] + end + end + resources :data_lists, only: [] do + collection do + post :sync + end resources :table_lists do collection do get :direct