mrdougwright

mrdougwright

Reading calculations in Ash GraphQL

I have an Ash GraphQL schema, with calculations, simplified like so:

  attributes do
    attribute :start_at, :utc_datetime, public?: true
  end

  calculations do
    calculate :end_at,
              :utc_datetime,
              expr(datetime_add(start_at, duration, :millisecond)),
              public?: true
    end
  end

  graphql do
    queries do
      get :get_event, :read
    end
  end

The issue is that the calculated end_at attribute is not loaded when performing the query. The start_at attribute, of course, loads fine since it is an actual db column.

 query GetEvent($id: ID!) {
    getEvent(id: $id) {
      startAt
      endAt
     }
  }

=>         end_at = #Ash.NotLoaded<:calculation, field: :end_at>

How can I load or resolve a calculated Ash attribute with Ash Graphql? I wasn’t able to find anything about calculations in AshGraphql documentation, nor anything about graphql in Ash documentation

Marked As Solved

mrdougwright

mrdougwright

      event = Ash.load!(event, [:end_at], authorize?: false)

Also Liked

mrdougwright

mrdougwright

Nvm, now it’s resolved. Error was in not loading the resource in my test! :man_facepalming:

Where Next?

Popular in Questions Top

nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
Lily
In templates/appointment/index.html.eex: &lt;%= for appointment &lt;- @appointments do %&gt; &lt;tr&gt; &lt;td&gt;&lt;%= appoi...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New

Other popular topics Top

vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
sen
Hi All, I set a environment variables in dev.exs , like below code. when i start server, how can i set the ${enable} value? thanks. d...
New
dblack
I’ve got an issue with an app and I’ve no idea of how to troubleshoot it. I’m hoping someone here might have seen something similar. I p...
New

We're in Beta

About us Mission Statement