aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXinhui2016-09-28 11:42:45 +0200
committerXinhui2016-09-28 12:04:25 +0200
commitd26ef7aa659b3015ccf4b8525c56b4c139c4a693 (patch)
treefed0f96b32bb97cee4dc053dc7a8582a4011b659
parentec95f5866d9876587444f26a85e024ed7828a4e7 (diff)
downloadchouette-core-d26ef7aa659b3015ccf4b8525c56b4c139c4a693.tar.bz2
Model LineReferentialSyncMessage
Refs #1707
-rw-r--r--app/models/line_referential_sync.rb2
-rw-r--r--app/models/line_referential_sync_message.rb6
-rw-r--r--config/initializers/apartment.rb2
-rw-r--r--db/migrate/20160928084508_create_line_referential_sync_messages.rb13
-rw-r--r--db/schema.rb15
-rw-r--r--spec/factories/line_referential_sync_messages.rb5
-rw-r--r--spec/models/line_referential_sync_message_spec.rb10
7 files changed, 51 insertions, 2 deletions
diff --git a/app/models/line_referential_sync.rb b/app/models/line_referential_sync.rb
index 5b97010b1..67151c61e 100644
--- a/app/models/line_referential_sync.rb
+++ b/app/models/line_referential_sync.rb
@@ -42,10 +42,12 @@ class LineReferentialSync < ActiveRecord::Base
def log_successful
logger.debug "#{self.class.name} sync - done"
+ update_attribute(:ended_at, Time.now)
end
def log_failed error
logger.debug e.message
logger.debug "#{self.class.name} sync - failed"
+ update_attribute(:ended_at, Time.now)
end
end
diff --git a/app/models/line_referential_sync_message.rb b/app/models/line_referential_sync_message.rb
new file mode 100644
index 000000000..c62b77689
--- /dev/null
+++ b/app/models/line_referential_sync_message.rb
@@ -0,0 +1,6 @@
+class LineReferentialSyncMessage < ActiveRecord::Base
+ belongs_to :line_referential_sync
+ enum criticity: [:info, :warn, :error]
+
+ validates :criticity, presence: true
+end
diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb
index 93ce2d8c6..b69db2b6d 100644
--- a/config/initializers/apartment.rb
+++ b/config/initializers/apartment.rb
@@ -27,6 +27,8 @@ Apartment.configure do |config|
"StopAreaReferential",
"Chouette::StopArea",
"LineReferential",
+ "LineReferentialSync",
+ "LineReferentialSyncMessage",
"Chouette::Line",
"Chouette::GroupOfLine",
"Chouette::Company",
diff --git a/db/migrate/20160928084508_create_line_referential_sync_messages.rb b/db/migrate/20160928084508_create_line_referential_sync_messages.rb
new file mode 100644
index 000000000..dfd673ab6
--- /dev/null
+++ b/db/migrate/20160928084508_create_line_referential_sync_messages.rb
@@ -0,0 +1,13 @@
+class CreateLineReferentialSyncMessages < ActiveRecord::Migration
+ def change
+ create_table :line_referential_sync_messages do |t|
+ t.integer :criticity
+ t.string :message_key
+ t.hstore :message_attributs
+ t.references :line_referential_sync
+
+ t.timestamps
+ end
+ add_index :line_referential_sync_messages, :line_referential_sync_id, name: 'line_referential_sync_id'
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 359e1c5f5..ad71bd9d8 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,12 +11,12 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 20160927085857) do
+ActiveRecord::Schema.define(version: 20160928084508) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
- enable_extension "hstore"
enable_extension "postgis"
+ enable_extension "hstore"
create_table "access_links", force: true do |t|
t.integer "access_point_id", limit: 8
@@ -273,6 +273,17 @@ ActiveRecord::Schema.define(version: 20160927085857) do
t.boolean "owner"
end
+ create_table "line_referential_sync_messages", force: true do |t|
+ t.integer "criticity"
+ t.string "message_key"
+ t.hstore "message_attributs"
+ t.integer "line_referential_sync_id"
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ end
+
+ add_index "line_referential_sync_messages", ["line_referential_sync_id"], :name => "line_referential_sync_id"
+
create_table "line_referential_syncs", force: true do |t|
t.integer "line_referential_id"
t.datetime "created_at"
diff --git a/spec/factories/line_referential_sync_messages.rb b/spec/factories/line_referential_sync_messages.rb
new file mode 100644
index 000000000..26d0f4daa
--- /dev/null
+++ b/spec/factories/line_referential_sync_messages.rb
@@ -0,0 +1,5 @@
+FactoryGirl.define do
+ factory :line_referential_sync_message do
+ criticity :info
+ end
+end
diff --git a/spec/models/line_referential_sync_message_spec.rb b/spec/models/line_referential_sync_message_spec.rb
new file mode 100644
index 000000000..d15c05ab0
--- /dev/null
+++ b/spec/models/line_referential_sync_message_spec.rb
@@ -0,0 +1,10 @@
+require 'rails_helper'
+
+RSpec.describe LineReferentialSyncMessage, :type => :model do
+ it 'should have a valid factory' do
+ expect(FactoryGirl.build(:line_referential_sync_message)).to be_valid
+ end
+
+ it { is_expected.to belong_to(:line_referential_sync) }
+ it { is_expected.to validate_presence_of(:criticity) }
+end