List fetchEvents()

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())
    }