User migration import controller and presenter

pull/8978/head
Javier Torres 8 years ago
parent f8a4eb57e5
commit dc2794a6fb

@ -9,8 +9,6 @@ module Carto
ssl_required [:show, :create]
layout 'application'
def create
export = Carto::UserMigrationExport.new(
user_id: params[:user_id],

@ -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

@ -602,6 +602,7 @@ CartoDB::Application.routes.draw do
scope module: 'carto' do
namespace :superadmin do
resources :user_migration_exports, only: [:show, :create]
resources :user_migration_imports, only: [:show, :create]
end
end

Loading…
Cancel
Save