DripDrop.Timing (DripDrop v0.1.0)

Copy Markdown View Source

Embedded timing configuration for sequence steps.

Summary

Functions

Calculates the next runtime for a timing config.

Builds a changeset for embedded step timing configuration.

Parses the documented human-friendly timing expressions.

Functions

calculate_next_run(timing, from)

@spec calculate_next_run(
  %DripDrop.Timing{
    cron_expression: term(),
    delay_amount: term(),
    delay_unit: term(),
    human_expression: term(),
    timezone: term(),
    trigger_data: term(),
    trigger_event: term(),
    type: term()
  },
  DateTime.t()
) :: {:ok, DateTime.t()} | {:event, String.t()} | {:error, term()}

Calculates the next runtime for a timing config.

changeset(timing, attrs)

@spec changeset(Ecto.Schema.t(), map()) :: Ecto.Changeset.t()

Builds a changeset for embedded step timing configuration.

parse_human_friendly(expr)

@spec parse_human_friendly(String.t()) :: {:ok, map()} | {:error, String.t()}

Parses the documented human-friendly timing expressions.