in buildSrc/src/main/groovy/org/grails/events/GrailsAirtable.groovy [43:70]
List<Event> fetchEvents(String practiceId) {
List<Record> records = api.list(TABLE_FOCUS,
null,
null,
null,
null,
null,
"All Upcoming Events",
null,
null,
null).records
records.stream().filter(record -> {
(record.fields[FIELD_PRACTICE_AREA] && (record.fields[FIELD_PRACTICE_AREA] as List<String>).contains(practiceId)) &&
(record.fields[FIELD_STATUS] == STATUS_SCHEDULED) &&
(record.fields[FIELD_EVENTS] as boolean)
}).map(record -> {
String d = record.fields[FIELD_DATE]
Event e = new Event()
e.link = record.fields[FIELD_LINK] ?: record.fields[FIELD_LINK_OCI]
e.location = record.fields[FIELD_LOCATION]
e.name = record.fields[FIELD_EVENT_NAME]
e.date = LocalDate.of(d.substring(0, 4) as Integer , d.substring(5, 7) as Integer, d.substring(8, 10) as Integer)
List<String> ociSpeakers = record.fields[FIELD_OCI_SPEAKERS].collect { ociSpeakerName(it as String) }
List<String> guestSpeakers = record.fields[FIELD_GUEST_SPEAKERS].collect { guestSpeakerName(it as String) }
e.speakers = ociSpeakers + guestSpeakers
e
}).collect(Collectors.toList())
}