diff --git a/api/app/models/database/dra.rb b/api/app/models/database/dra.rb index bb15b41a..3e55cfb5 100644 --- a/api/app/models/database/dra.rb +++ b/api/app/models/database/dra.rb @@ -50,34 +50,30 @@ def validate(validation) class Submitter def submit(submission) - db = Sequel.connect(ENV.fetch('DRA_DATABASE_URL')) + submitter_db = Sequel.connect(ENV.fetch('SUBMITTER_DB_DATABASE_URL')) + drmdb = Sequel.connect(ENV.fetch('DRMDB_DATABASE_URL')) - user_id = 42 - submitter_id = '42' + submitter_id = submission.validation.user.uid + user_id = submitter_db[:login].where(submitter_id:).get(:usr_id) - db.transaction auto_savepoint: true do - serial = nil - sub_id = nil + drmdb.transaction isolation: :serializable do + serial = (drmdb[:submission].where(submitter_id:).max(:serial) || 0) + 1 - db.transaction isolation: :serializable do - serial = (db[:submission].where(submitter_id:).max(:serial) || 0) + 1 - - sub_id = db[:submission].insert( - usr_id: user_id, - submitter_id: , - serial: , - create_date: Date.current - ) - end + sub_id = drmdb[:submission].insert( + usr_id: user_id, + submitter_id: , + serial: , + create_date: Date.current + ) submission_id = "#{submitter_id}-#{serial.to_s.rjust(4, '0')}" - db[:status_history].insert( + drmdb[:status_history].insert( sub_id: , status: 100 # SubmissionStatus.NEW ) - db[:operation_history].insert( + drmdb[:operation_history].insert( type: 3, # LogLevel.INFO summary: 'Status update to new', usr_id: user_id, @@ -85,13 +81,13 @@ def submit(submission) submitter_id: ) - ext_id = db[:ext_entity].insert( + ext_id = drmdb[:ext_entity].insert( acc_type: 'DRA', ref_name: submission_id, status: 0 # ExtStatus.INPUTTING ) - db[:ext_permit].insert( + drmdb[:ext_permit].insert( ext_id: , submitter_id: ) diff --git a/api/app/models/database/dra/db/migrations/001_init.rb b/api/db/dway/drmdb/migrations/001_init.rb similarity index 100% rename from api/app/models/database/dra/db/migrations/001_init.rb rename to api/db/dway/drmdb/migrations/001_init.rb diff --git a/api/db/dway/submitter_db/migrations/001_init.rb b/api/db/dway/submitter_db/migrations/001_init.rb new file mode 100644 index 00000000..176fe7ac --- /dev/null +++ b/api/db/dway/submitter_db/migrations/001_init.rb @@ -0,0 +1,14 @@ +Sequel.migration do + change do + create_table :login do + primary_key :usr_id, type: :bigint + + text :submitter_id, null: false + text :password, null: false + integer :role, null: false, default: 0 + boolean :usable, null: false, default: true + boolean :need_chgpasswd, default: true + timestamp :create_date, default: Sequel.lit("date_trunc('second'::text, now())") + end + end +end diff --git a/api/lib/tasks/dra.rake b/api/lib/tasks/dra.rake deleted file mode 100644 index 5afa5a86..00000000 --- a/api/lib/tasks/dra.rake +++ /dev/null @@ -1,14 +0,0 @@ -namespace :dra do - namespace :db do - desc 'Run migrations' - task :migrate, [:version] do |t, args| - require 'sequel/core' - - Sequel.extension :migration - - Sequel.connect ENV.fetch('DRA_DATABASE_URL') do |db| - Sequel::Migrator.run db, 'app/models/database/dra/db/migrations', target: args[:version]&.to_i - end - end - end -end diff --git a/api/lib/tasks/dway.rake b/api/lib/tasks/dway.rake new file mode 100644 index 00000000..edcef1c0 --- /dev/null +++ b/api/lib/tasks/dway.rake @@ -0,0 +1,18 @@ +namespace :dway do + namespace :db do + desc 'Run migrations' + task :migrate, [:version] do |t, args| + require 'sequel/core' + + Sequel.extension :migration + + Sequel.connect ENV.fetch('DRMDB_DATABASE_URL') do |db| + Sequel::Migrator.run db, 'db/dway/drmdb/migrations', target: args[:version]&.to_i + end + + Sequel.connect ENV.fetch('SUBMITTER_DB_DATABASE_URL') do |db| + Sequel::Migrator.run db, 'db/dway/submitter_db/migrations', target: args[:version]&.to_i + end + end + end +end