Hi there!
I’m using ash_json_api and I’m trying to add metadata to the response of a create action, but it doesn’t seem to be included in the meta field. I’ve got the following relevant pieces in my resource:
json_api do
type "asset"
routes do
base "/assets"
get :read
index :read
post :create
end
end
actions do
defaults [:read]
create :create do
# Set the current user as the owner of the asset
change relate_actor(:user)
# Create signed url for the asset
metadata :signed_url, :string, allow_nil?: false
change Swoop.Media.Changes.GeneratePresignedUrl
end
end
In GeneratePresignedUrl I’m returning this in a after_action function:
result = Ash.Resource.put_metadata(result, :signed_url, url)
{:ok, result}
But unfortunately after doing a POST to the endpoint with curl, I’m getting empty meta fields:
{"data":{"attributes":{},"id":"11700f40-c37b-4776-b3b0-7d1207cbb6d0","links":{},"meta":{},"relationships":{},"type":"asset"},"jsonapi":{"version":"1.0"},"links":{"self":"http://localhost:4000/api/json/assets"},"meta":{}}
What am I missing?
Thanks in advance!






















