Class: Facilities::NCAFacility

Inherits:
BaseFacility show all
Defined in:
app/models/facilities/nca_facility.rb

Constant Summary

Constants inherited from BaseFacility

BaseFacility::BENEFITS, BaseFacility::CEMETERY, BaseFacility::DAYS, BaseFacility::DOD_HEALTH, BaseFacility::FACILITY_MAPPINGS, BaseFacility::HEALTH, BaseFacility::HOURS_STANDARD_MAP, BaseFacility::PENSION_LOCATIONS, BaseFacility::PREFIX_MAP, BaseFacility::TYPES, BaseFacility::TYPE_MAP, BaseFacility::TYPE_NAME_MAP, BaseFacility::VET_CENTER, BaseFacility::YES

Class Method Summary collapse

Methods inherited from BaseFacility

#facility_type_prefix, find_facility_by_id, find_sti_class, max_per_page, per_page, query, sti_name, suggested, to_date

Methods inherited from ApplicationRecord

descendants_using_encryption, lockbox_options, #timestamp_attributes_for_update_in_model, #valid?

Class Method Details

.add_websites(facilities) ⇒ Object



20
21
22
23
24
25
26
27
# File 'app/models/facilities/nca_facility.rb', line 20

def add_websites(facilities)
  service = Facilities::WebsiteUrlService.new
  facilities.map do |fac|
    unique_id = fac['unique_id'].sub(/^0/, '')
    fac['website'] = service.find_for_station(unique_id, sti_name)
    fac
  end
end

.arcgis_typeObject



33
34
35
# File 'app/models/facilities/nca_facility.rb', line 33

def arcgis_type
  'NCA_Facilities'
end

.attribute_mapObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'app/models/facilities/nca_facility.rb', line 41

def attribute_map
  {
    'unique_id' => 'SITE_ID',
    'name' => 'FULL_NAME',
    'classification' => 'SITE_TYPE',
    'phone' => { 'main' => 'PHONE', 'fax' => 'FAX' },
    'physical' => { 'address_1' => 'SITE_ADDRESS1', 'address_2' => 'SITE_ADDRESS2',
                    'address_3' => '', 'city' => 'SITE_CITY', 'state' => 'SITE_STATE',
                    'zip' => 'SITE_ZIP' },
    'mailing' => { 'address_1' => 'MAIL_ADDRESS1', 'address_2' => 'MAIL_ADDRESS2',
                   'address_3' => '', 'city' => 'MAIL_CITY', 'state' => 'MAIL_STATE',
                   'zip' => 'MAIL_ZIP' },
    'hours' => { 'Monday' => 'VISITATION_HOURS_WEEKDAY', 'Tuesday' => 'VISITATION_HOURS_WEEKDAY',
                 'Wednesday' => 'VISITATION_HOURS_WEEKDAY', 'Thursday' => 'VISITATION_HOURS_WEEKDAY',
                 'Friday' => 'VISITATION_HOURS_WEEKDAY', 'Saturday' => 'VISITATION_HOURS_WEEKEND',
                 'Sunday' => 'VISITATION_HOURS_WEEKEND' },
    'mapped_fields' => %w[SITE_ID FULL_NAME SITE_TYPE Website_URL SITE_ADDRESS1 SITE_ADDRESS2 SITE_CITY
                          SITE_STATE SITE_ZIP MAIL_ADDRESS1 MAIL_ADDRESS2 MAIL_CITY MAIL_STATE MAIL_ZIP
                          PHONE FAX VISITATION_HOURS_WEEKDAY VISITATION_HOURS_WEEKEND]

  }
end

.get_all_the_facilities_dataObject



13
14
15
16
17
18
# File 'app/models/facilities/nca_facility.rb', line 13

def get_all_the_facilities_data
   = Facilities::Metadata::Client.new.(arcgis_type)
  max_record_count = ['maxRecordCount']
  resp = Facilities::Client.new.get_all_facilities(arcgis_type, sort_field, max_record_count)
  add_websites(resp)
end

.pull_source_dataObject



9
10
11
# File 'app/models/facilities/nca_facility.rb', line 9

def pull_source_data
  get_all_the_facilities_data.map(&method(:new))
end

.service_listObject



29
30
31
# File 'app/models/facilities/nca_facility.rb', line 29

def service_list
  []
end

.sort_fieldObject



37
38
39
# File 'app/models/facilities/nca_facility.rb', line 37

def sort_field
  'SITE_ID'
end