parent
f8a4eb57e5
commit
dc2794a6fb
@ -0,0 +1,23 @@
|
||||
# encoding: utf-8
|
||||
|
||||
module Carto
|
||||
module Superadmin
|
||||
class UserMigrationImportPresenter
|
||||
|
||||
def initialize(user_migration_import)
|
||||
@user_migration_import = user_migration_import
|
||||
end
|
||||
|
||||
def to_poro
|
||||
return {} unless @user_migration_import
|
||||
|
||||
{
|
||||
id: @user_migration_import.id,
|
||||
state: @user_migration_import.state,
|
||||
log: @user_migration_import.log.entries
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,35 @@
|
||||
# encoding: UTF-8
|
||||
|
||||
require_dependency 'resque/user_migration_jobs'
|
||||
|
||||
module Carto
|
||||
module Superadmin
|
||||
class UserMigrationImportsController < ::Superadmin::SuperadminController
|
||||
respond_to :json
|
||||
|
||||
ssl_required [:show, :create]
|
||||
|
||||
def create
|
||||
import = Carto::UserMigrationImport.create(
|
||||
exported_file: params[:exported_file],
|
||||
json_file: params[:json_file],
|
||||
database_host: params[:database_host],
|
||||
org_import: params[:org_import],
|
||||
user_id: params[:user_id],
|
||||
organization_id: params[:organization_id],
|
||||
)
|
||||
if import.save
|
||||
Resque.enqueue(Resque::UserMigrationJobs::Import, import_id: import.id)
|
||||
render json: UserMigrationImportPresenter.new(import).to_poro, status: 201
|
||||
else
|
||||
render json: { errors: import.errors.to_h }, status: 422
|
||||
end
|
||||
end
|
||||
|
||||
def show
|
||||
import = Carto::UserMigrationImport.find(params[:id])
|
||||
render json: UserMigrationImportPresenter.new(import).to_poro
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in new issue