-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathmigrate_plus.migration.va_node_health_care_local_facility.yml
266 lines (266 loc) · 5.9 KB
/
migrate_plus.migration.va_node_health_care_local_facility.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
uuid: e609d96b-f8c9-46bd-a0a7-0498f5a7955b
langcode: en
status: true
dependencies:
enforced:
module:
- tzfield
id: va_node_health_care_local_facility
class: null
field_plugin_method: null
cck_plugin_method: null
migration_tags:
- Continuous
- Content
- Node
migration_group: facility
label: 'Node - Health Care Local Facility'
source:
track_changes: true
cache_counts: true
plugin: url
data_fetcher_plugin: http
data_parser_plugin: json
urls:
- 'https://sandbox-api.va.gov/services/va_facilities/v1/facilities?per_page=1000'
- 'https://sandbox-api.va.gov/services/va_facilities/v1/facilities?per_page=1000&page=2'
- 'https://sandbox-api.va.gov/services/va_facilities/v1/facilities?per_page=1000&page=3'
headers:
Accept: application/json
apikey: 'DEFINED IN settings.php'
item_selector: data/
ids:
id:
type: string
constants: null
fields:
-
name: address1
label: address1
selector: attributes/address/physical/address1
-
name: address2
label: address2
selector: attributes/address/physical/address2
-
name: address3
label: address3
selector: attributes/address/physical/address3
-
name: classification
label: classification
selector: attributes/classification
-
name: city
label: city
selector: attributes/address/physical/city
-
name: facility_type
label: facility_type
selector: attributes/facilityType
-
name: hours
label: hours
selector: attributes/hours
-
name: latitude
label: latitude
selector: attributes/lat
-
name: longitude
label: longitude
selector: attributes/long
-
name: time_zone
label: time_zone
selector: attributes/timeZone
-
name: id
label: id
selector: id
-
name: name
label: name
selector: attributes/name
-
name: phone-main
label: phone-main
selector: attributes/phone/main
-
name: state
label: state
selector: attributes/address/physical/state
-
name: zip
label: zip
selector: attributes/address/physical/zip
-
name: mobile
label: mobile
selector: attributes/mobile
process:
non_field1:
plugin: skip_on_value
not_equals: true
source: facility_type
method: row
value:
- va_health_facility
title:
plugin: skip_on_empty
method: row
source: name
message: 'Skipped: Source title/name is empty, can not have a node without title.'
field_facility_locator_api_id:
plugin: skip_on_empty
method: row
source: id
message: 'Skipped: Source API ID is empty, must have it.'
field_administration:
plugin: default_value
default_value: 8
langcode:
plugin: default_value
default_value: en
field_address/country_code:
plugin: default_value
default_value: US
field_address/langcode:
plugin: default_value
default_value: en
field_address/address_line1:
-
plugin: get
source:
- address1
- address2
- address3
-
plugin: callback
callable: array_filter
-
plugin: multiple_values
-
plugin: callback
callable: trim
-
plugin: concat
delimiter: ', '
field_address/locality: city
field_address/administrative_area: state
field_address/postal_code: zip
field_geolocation:
plugin: geofield_latlon
source:
- latitude
- longitude
field_office_hours:
plugin: va_field_office_hours
source: hours
field_timezone: time_zone
field_facility_classification:
-
plugin: static_map
source: classification
map:
'VA Medical Center (VAMC)': 1
'Health Care Center (HCC)': 2
'Multi-Specialty CBOC': 3
'Primary Care CBOC': 4
MCS: 5
'Other Outpatient Services (OOS)': 6
'Extended Care Site (Community Living Center) (Stand-Alone)': 7
'Residential Care Site (MH RRTP/DRRTP) (Stand-Alone)': 8
field_phone_number:
plugin: str_replace
search:
- (
- )
- X
- ' '
- ext
- Ext
- .
- ','
- x
replace:
- ''
- '-'
- x
- ''
- x
- x
- ''
- ''
- ', ext. '
source: phone-main
field_mobile:
plugin: convert_boolean
source: mobile
status:
plugin: default_value
default_value: 0
promote:
plugin: default_value
default_value: 0
sticky:
plugin: default_value
default_value: 0
path/pathauto:
plugin: default_value
default_value: 1
published_status:
plugin: default_value
default_value: 0
moderation_state:
plugin: default_value
default_value: draft
changed:
plugin: callback
callable: va_gov_migrate_time
new_revision:
plugin: default_value
default_value: true
revision_default:
plugin: default_value
default_value: true
revision_log:
plugin: default_value
default_value: 'Update of Facility API data by migration.'
revision_timestamp:
plugin: callback
callable: va_gov_migrate_time
revision_uid:
plugin: default_value
default_value: 1317
uid:
plugin: default_value
default_value: 1317
type:
plugin: default_value
default_value: health_care_local_facility
destination:
plugin: 'entity:node'
default_bundle: health_care_local_facility
overwrite_properties:
- field_address/address_line1
- field_address/administrative_area
- field_address/country_code
- field_address/locality
- field_address/postal_code
- field_geolocation
- field_office_hours
- field_timezone
- changed
- field_facility_classification
- field_phone_number
- field_mobile
- new_revision
- revision_default
- revision_log
- revision_timestamp
- revision_uid
- title
- uid
migration_dependencies:
required: { }