Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
simple_controller
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open-source
simple_controller
Commits
6a2ab96b
Commit
6a2ab96b
authored
May 24, 2021
by
liyijie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
extract importable & exportable
parent
6ed82a98
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
37 deletions
+39
-37
base_controller.rb
lib/simple_controller/base_controller.rb
+0
-37
exportable.rb
lib/simple_controller/exportable.rb
+10
-0
importable.rb
lib/simple_controller/importable.rb
+29
-0
No files found.
lib/simple_controller/base_controller.rb
View file @
6a2ab96b
...
...
@@ -37,43 +37,6 @@ class SimpleController::BaseController < ::InheritedResources::Base
super
(
options
,
&
block
)
end
def
upload_excel
excel
=
importable_class
.
import_excel_klass
.
new
excel
.
load
(
params
[
:file
])
render
json:
{
uid:
excel
.
uid
}
end
def
excel
excel
=
importable_class
.
import_excel_klass
.
new
(
params
[
:uid
])
pagination
=
excel
.
records_pagination
(
page:
params
[
:page
]
||
1
,
per_page:
params
[
:per_page
]
||
15
)
render
json:
{
current_page:
pagination
.
current_page
,
total_pages:
pagination
.
total_pages
,
total_count:
pagination
.
count
,
titles:
excel
.
titles
,
records:
pagination
,
}
end
def
import_headers
render
json:
{
headers:
importable_class
.
import_instance
.
import_headers
}
end
def
import
xlsx_file
=
params
[
:file
]
||
importable_class
.
import_excel_klass
.
new
(
params
[
:uid
])
response
=
importable_class
.
import_xlsx
(
xlsx_file
,
collection
,
**
params
.
to_unsafe_h
.
symbolize_keys
)
render
json:
response
,
status:
201
end
def
export_headers
render
json:
{
headers:
exportable_class
.
export_instance
.
export_headers
}
end
def
export
path
=
exportable_class
.
export_xlsx
collection
,
**
params
.
to_unsafe_h
.
symbolize_keys
send_file
path
end
def
batch_destroy
collection
.
transaction
do
params
[
:ids
].
each
do
|
id
|
...
...
lib/simple_controller/exportable.rb
0 → 100644
View file @
6a2ab96b
module
SimpleController::Exportable
def
export_headers
render
json:
{
headers:
exportable_class
.
export_instance
.
export_headers
}
end
def
export
path
=
exportable_class
.
export_xlsx
collection
,
**
params
.
to_unsafe_h
.
symbolize_keys
send_file
path
end
end
lib/simple_controller/importable.rb
0 → 100644
View file @
6a2ab96b
module
SimpleController::Importable
def
upload_excel
excel
=
importable_class
.
import_excel_klass
.
new
excel
.
load
(
params
[
:file
])
render
json:
{
uid:
excel
.
uid
}
end
def
excel
excel
=
importable_class
.
import_excel_klass
.
new
(
params
[
:uid
])
pagination
=
excel
.
records_pagination
(
page:
params
[
:page
]
||
1
,
per_page:
params
[
:per_page
]
||
15
)
render
json:
{
current_page:
pagination
.
current_page
,
total_pages:
pagination
.
total_pages
,
total_count:
pagination
.
count
,
titles:
excel
.
titles
,
records:
pagination
,
}
end
def
import_headers
render
json:
{
headers:
importable_class
.
import_instance
.
import_headers
}
end
def
import
xlsx_file
=
params
[
:file
]
||
importable_class
.
import_excel_klass
.
new
(
params
[
:uid
])
response
=
importable_class
.
import_xlsx
(
xlsx_file
,
collection
,
**
params
.
to_unsafe_h
.
symbolize_keys
)
render
json:
response
,
status:
201
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment