|
310 | 310 | t.string :name |
311 | 311 | end |
312 | 312 |
|
313 | | - # special cases |
| 313 | + create_table :storages, force: true do |t| |
| 314 | + t.string :token, null: false |
| 315 | + t.string :name |
| 316 | + t.timestamps null: false |
| 317 | + end |
| 318 | + |
| 319 | + create_table :keepers, force: true do |t| |
| 320 | + t.string :name |
| 321 | + t.string :keepable_type, null: false |
| 322 | + t.integer :keepable_id, null: false |
| 323 | + t.timestamps null: false |
| 324 | + end |
| 325 | + |
| 326 | + create_table :access_cards, force: true do |t| |
| 327 | + t.string :token, null: false |
| 328 | + t.string :security_level |
| 329 | + t.timestamps null: false |
| 330 | + end |
| 331 | + |
| 332 | + create_table :workers, force: true do |t| |
| 333 | + t.string :name |
| 334 | + t.integer :access_card_id, null: false |
| 335 | + t.timestamps null: false |
| 336 | + end |
314 | 337 | end |
315 | 338 |
|
316 | 339 | ### MODELS |
@@ -655,6 +678,22 @@ class Customer < Customer |
655 | 678 | end |
656 | 679 | end |
657 | 680 |
|
| 681 | +class Storage < ActiveRecord::Base |
| 682 | + has_one :keeper, class_name: 'Keeper', as: :keepable |
| 683 | +end |
| 684 | + |
| 685 | +class Keeper < ActiveRecord::Base |
| 686 | + belongs_to :keepable, polymorphic: true |
| 687 | +end |
| 688 | + |
| 689 | +class AccessCard < ActiveRecord::Base |
| 690 | + has_one :worker, class_name: 'Worker' |
| 691 | +end |
| 692 | + |
| 693 | +class Worker < ActiveRecord::Base |
| 694 | + belongs_to :access_card |
| 695 | +end |
| 696 | + |
658 | 697 | ### CONTROLLERS |
659 | 698 | class AuthorsController < JSONAPI::ResourceControllerMetal |
660 | 699 | end |
@@ -930,6 +969,17 @@ class DoctorsController < JSONAPI::ResourceController |
930 | 969 | class RespondentController < JSONAPI::ResourceController |
931 | 970 | end |
932 | 971 |
|
| 972 | +class StoragesController < BaseController |
| 973 | +end |
| 974 | + |
| 975 | +class KeepersController < BaseController |
| 976 | +end |
| 977 | + |
| 978 | +class AccessCardsController < BaseController |
| 979 | +end |
| 980 | + |
| 981 | +class WorkersController < BaseController |
| 982 | +end |
933 | 983 | ### RESOURCES |
934 | 984 | class BaseResource < JSONAPI::Resource |
935 | 985 | abstract |
@@ -1894,6 +1944,35 @@ class RespondentResource < JSONAPI::Resource |
1894 | 1944 | abstract |
1895 | 1945 | end |
1896 | 1946 |
|
| 1947 | +class StorageResource < JSONAPI::Resource |
| 1948 | + key_type :string |
| 1949 | + primary_key :token |
| 1950 | + |
| 1951 | + attribute :name |
| 1952 | +end |
| 1953 | + |
| 1954 | +class KeeperResource < JSONAPI::Resource |
| 1955 | + has_one :keepable, polymorphic: true, foreign_key: :keepable_id |
| 1956 | + |
| 1957 | + attribute :name |
| 1958 | +end |
| 1959 | + |
| 1960 | +class KeepableResource < JSONAPI::Resource |
| 1961 | +end |
| 1962 | + |
| 1963 | +class AccessCardResource < JSONAPI::Resource |
| 1964 | + key_type :string |
| 1965 | + primary_key :token |
| 1966 | + |
| 1967 | + attribute :security_level |
| 1968 | +end |
| 1969 | + |
| 1970 | +class WorkerResource < JSONAPI::Resource |
| 1971 | + has_one :access_card |
| 1972 | + |
| 1973 | + attribute :name |
| 1974 | +end |
| 1975 | + |
1897 | 1976 | ### PORO Data - don't do this in a production app |
1898 | 1977 | $breed_data = BreedData.new |
1899 | 1978 | $breed_data.add(Breed.new(0, 'persian')) |
|
0 commit comments