diff --git a/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java b/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java index 7c8faa9fa766..1d8633e20baa 100644 --- a/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java +++ b/airbyte-server/src/main/java/io/airbyte/server/handlers/ConnectionsHandler.java @@ -217,7 +217,9 @@ private Builder generateMetadata(final StandardSync standardSync metadata.put("connector_destination_definition_id", destinationDefinition.getDestinationDefinitionId()); final String frequencyString; - if (standardSync.getManual()) { + if (standardSync.getScheduleType() != null) { + frequencyString = getFrequencyStringFromScheduleType(standardSync.getScheduleType(), standardSync.getScheduleData()); + } else if (standardSync.getManual()) { frequencyString = "manual"; } else { final long intervalInMinutes = TimeUnit.SECONDS.toMinutes(ScheduleHelpers.getIntervalInSecond(standardSync.getSchedule())); @@ -422,4 +424,22 @@ private ConnectionRead buildConnectionRead(final UUID connectionId) return ApiPojoConverters.internalToConnectionRead(standardSync); } + private static String getFrequencyStringFromScheduleType(final ScheduleType scheduleType, final ScheduleData scheduleData) { + switch (scheduleType) { + case MANUAL -> { + return "manual"; + } + case BASIC_SCHEDULE -> { + return TimeUnit.SECONDS.toMinutes(ScheduleHelpers.getIntervalInSecond(scheduleData.getBasicSchedule())) + " min"; + } + case CRON -> { + // TODO(https://github.com/airbytehq/airbyte/issues/2170): consider something more detailed. + return "cron"; + } + default -> { + throw new RuntimeException("Unexpected schedule type"); + } + } + } + }