Ash FrameworkAF
Ash Framework3y ago
8 replies
sriky27

query filter with fragment issues

HI

I am trying to do the following

    read :time_slots do
      argument :start_date, :utc_datetime do
        allow_nil?(false)
      end

      argument :end_date, :utc_datetime do
        allow_nil?(false)
      end

      argument :duration, :integer do
        allow_nil?(true)
      end

      argument :resource_id, :uuid do
        allow_nil?(false)
      end

      prepare(fn query, _ ->
        start_date = Ash.Query.get_argument(query, :start_date)
        end_date = Ash.Query.get_argument(query, :end_date)
        duration = Ash.Query.get_argument(query, :duration)
        qresource_id = Ash.Query.get_argument(query, :resource_id)

        query
        |> Ash.Query.filter(
          fragment(
            """
            SELECT DISTINCT start_at FROM reservation_items e cross join generate_series(?::timestamp , ?::timestamp, '30 min'::interval) as t
            WHERE tsrange(e.start_at, e.end_at) @> t AND NOT(e.canceled) AND e.resource_id = ?;
            """,
            start_date,
            end_date,
            qresource_id
          )
        )
      end)
end


I am getting invalid argument :resource_id
Was this page helpful?