query filter with fragment issues
HI
I am trying to do the following
I am getting invalid argument :resource_id
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 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)
endI am getting invalid argument :resource_id
