cats_core 1.2.29 → 1.2.30

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 88acfd698b11129e941ca058a9fb856745acb440e3f624a6cbcdcf0f1f4304b7
4
- data.tar.gz: 451c7311e7c447d36729102c1dcb7d5756491eb08bbad88266b72bd52a7f9893
3
+ metadata.gz: 7d71e458593e0bfa2d57ddcba1e5ea4f1392df4223cff0c2b7ef5d1150859463
4
+ data.tar.gz: 4d2798fd1957265c3493ee8dca89b759d674d2e029489dc7382e7a6d5f62b0c4
5
5
  SHA512:
6
- metadata.gz: '096b15bd9fb62182f055d7ddbeee44d5614f0631bdc7f2f93869c26414a60dcede4b3d1971b6787e61fa7eb34ed687086964dd93978ffc6a0cb7c380c7c7b259'
7
- data.tar.gz: bfc6eb7f162a838f48a4c153faffa9652b25fa951e9d0ad1711fee49044496a499a28f22ca45d5df4cd47739646195301ef118e67b6695ff0e6cfd85fae107a1
6
+ metadata.gz: 739d0d54055f96059cfb2818f86026ac46518e3c64eaa81762e984ea803e95650c56f28f11ee738fe29254deeb9b5e76a668b037c0454c40c3e4a308db6001d0
7
+ data.tar.gz: e64a2e770bd662c26218e6d67a1c76d32ddf881deae9e77faecf3aa52628b1f19ac84f71fad4b202dcb200f8cc23aed3c2274f03aa8ff4513fba24b36ee7b254
@@ -6,7 +6,7 @@ module Cats
6
6
  private
7
7
 
8
8
  def model_params
9
- params.require(:payload).permit(:source_id, :destination_id)
9
+ params.require(:payload).permit(:region_id, :source_id, :destination_id)
10
10
  end
11
11
  end
12
12
  end
@@ -3,16 +3,36 @@ module Cats
3
3
  class Route < ApplicationRecord
4
4
  before_validation :set_name, on: %i[create update]
5
5
 
6
+ belongs_to :region, class_name: 'Cats::Core::Location'
6
7
  belongs_to :source, class_name: 'Cats::Core::Location'
7
8
  belongs_to :destination, class_name: 'Cats::Core::Location'
8
9
 
9
10
  validates :source_id, uniqueness: { scope: :destination_id }
11
+ validate :validate_region, :validate_source, :validate_destination
10
12
 
11
13
  def set_name
12
14
  return unless source && destination
13
15
 
14
16
  self.name = "#{source.name} - #{destination.name}"
15
17
  end
18
+
19
+ def validate_region
20
+ return unless region
21
+
22
+ errors.add(:region, 'should be a valid region.') unless region.location_type == Location::REGION
23
+ end
24
+
25
+ def validate_source
26
+ return unless source
27
+
28
+ errors.add(:source, 'cannot be a region.') if source.location_type == Location::REGION
29
+ end
30
+
31
+ def validate_destination
32
+ return unless destination
33
+
34
+ errors.add(:destination, 'cannot be a region.') if destination.location_type == Location::REGION
35
+ end
16
36
  end
17
37
  end
18
38
  end
@@ -2,6 +2,10 @@ class CreateCatsCoreRoutes < ActiveRecord::Migration[6.1]
2
2
  def change
3
3
  create_table :cats_core_routes do |t|
4
4
  t.string :name, null: false
5
+ t.references :region,
6
+ null: false,
7
+ index: { name: 'region_on_routes_indx' },
8
+ foreign_key: { to_table: :cats_core_locations }
5
9
  t.references :source,
6
10
  null: false,
7
11
  index: { name: 'source_on_routes_indx' },
@@ -13,7 +17,7 @@ class CreateCatsCoreRoutes < ActiveRecord::Migration[6.1]
13
17
 
14
18
  t.timestamps
15
19
 
16
- t.index [:source_id, :destination_id], unique: true
20
+ t.index %i[source_id destination_id], unique: true
17
21
  end
18
22
  end
19
23
  end
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.2.29'.freeze
3
+ VERSION = '1.2.30'.freeze
4
4
  end
5
5
  end
@@ -1,6 +1,7 @@
1
1
  FactoryBot.define do
2
2
  factory :route, class: 'Cats::Core::Route' do
3
- source factory: :location
4
- destination factory: :location
3
+ region factory: :location
4
+ source factory: :woreda
5
+ destination factory: :woreda
5
6
  end
6
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cats_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.29
4
+ version: 1.2.30
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henock L.