PeriodOfTimeValue.fromCrawledStringValue constructor

PeriodOfTimeValue.fromCrawledStringValue(
  1. String value, {
  2. String? timeZoneIdentifier,
})

Implementation

factory PeriodOfTimeValue.fromCrawledStringValue(
  String value, {
  String? timeZoneIdentifier,
}) {
  final DateTimeValue start = DateTimeValue.fromCrawledStringValue(
    value.split("/").first,
    timeZoneIdentifier: timeZoneIdentifier,
  );
  final isDuration = value.split("/").last.toUpperCase().startsWith("P");

  if (isDuration) {
    final duration = DurationValue.fromCrawledStringValue(
      value.split("/").last,
    );
    return PeriodOfTimeValue(
      start: start.value,
      duration: duration.value,
      durationInWeeks: duration.inWeeks,
      fixed: start.fixed,
      timeZoneIdentifier: timeZoneIdentifier,
    );
  }

  return PeriodOfTimeValue(
    start: start.value,
    end: DateTimeValue.fromCrawledStringValue(
      value.split("/").last,
      timeZoneIdentifier: timeZoneIdentifier,
    ).value,
    fixed: start.fixed,
    timeZoneIdentifier: timeZoneIdentifier,
  );
}