raphexion

raphexion

When using Absinthe Controller, what is the correct way to massage data before it goes into the mutation

Hey,

I’ve created a Absinthe schema that is working. Just for fun I want to try to integrate and learn Absinthe.Phoenix.Controller. So that I can reuse the same schema in a “classic” controller solution.

I’ve started from the auto-generate code that I get from this

mix phx.gen.html Todos TodoList todo_lists name:string

index as easy to implement by just following the documentation.
However, from create I got a little stuck.
Here is my stripped controller.

defmodule BackendWeb.TodoListController do
  use BackendWeb, :controller
  use Absinthe.Phoenix.Controller, schema: BackendWeb.Schema, action: [mode: :internal]

  @graphql """
  mutation CreateTodoList($name: String!) {
    create_todo_list(name: $name)
  }
  """
  def create(conn, result) do
    # ...
  end
end

When I press the button from http://localhost:4000/todo_lists/new I get

Parameters: %{"_csrf_token" => "..", "todo_list" => %{"name" => "Have fun"}}

I think the mutation needs a %{name: "Have fun"}. Which means that I need to unpack the incoming request body.

Which is the correct way to massage the incoming data from the form so it fits with the GraphQL query. I want to ask before I try to hack my own solution.

Any help is greatly appreciated.

Most Liked

raphexion

raphexion

Thank you @krasenyp for the help. I agree that it might not be the best idea. However, I notice that there is a mutation example in the book (page 207).

Great suggestion about the query parameters example. I didn’t make the connection when I read the documentation. I was so focused on keeping the GraphQL statement the same (as if I called it externally over the API).

Once again, thank you for your reply, I will try it out.

krasenyp

krasenyp

I think the original idea is to use the Absinthe controller with GraphQL queries. I don’t see why you’d want to use it the way you tried. Nevertheless, the docs show an example usage and the data for the query comes from the request’s query parameters - Absinthe.Phoenix.Controller — absinthe_phoenix v2.0.2.

Where Next?

Popular in Questions Top

senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
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
logicmason
Hi there, I'm working through my first release with elixir/phoenix. I've built a release with distillery and found that it crashes when I...
New
Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
Phillipp
Hey, I have a NanoPi-M3 and try to install Elixir on their Ubuntu image. I followed the Raspberry Pi installation instructions from the ...
New
mgjohns61585
Could someone help me? I'm making my first elixir program, number guessing game. I can't figure out how to convert the user's guess from ...
New
LegitStack
I’m trying to make a websocket server in Phoenix or raw Elixir. I heard about gun, I think I could use cowboy, but since I’m not that sma...
New
Codball
Mix format works fine if run from the cmd. I’ve followed this to facilitate the implementation into VSC which involves downloading an ext...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New

Other popular topics Top

peerreynders
Manning 2016 Halloween weekend sale via Deal of the Day Friday, October 28 - Half off all MEAPs - code WM102816LT Saturday, October 29 ...
326 29600 154
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
KronicDeth
Elixir plugin for JetBrain’s IntelliJ Platform (including Rubymine) This is a plugin that adds support for Elixir to JetBrains IntelliJ...
289 35421 110
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
mcarvalho
What is the difference between System.get_env and Application.get_env? For example, what are best practices to use one versus another.
New
danschultzer
None of the current solutions worked well for me, so I went ahead and built a user management system from scratch. This project took far...
548 27727 240
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
chensan
I have a User schema with a :from_id field set to type :string: defmodule TweetBot.Repo.Migrations.CreateUsers do use Ecto.Migration ...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New

We're in Beta

About us Mission Statement