How to trigger a task on the backend using Absinthe

Hi all,

I have an app with a Vue frontend and Absinthe handling Queries and Mutations.

I’d like the frontend to offer a [confirm email] link where the user clicks on it, and it then triggers an email to be sent to that user. I think this is a typical workflow.

Actions flow:
User clicks on [Confirm Email] → VueJs sends a Graphql message → Absinthe Schema identifies Resolver → Resolver calls into Phoenix context → send_confirm_email(current_user) context function is called.

I’m using Graphql and I was assuming I would need to create an input_object with a field on it. Giving it more thought, there’s nothing I need to send with this message. The current user is saved on the backend so no need to send current_user.id or anything like that.

My questions are:

  1. Do I use a Query or a Mutation in GraphQL to trigger this confirm email workflow?
  2. If it is a mutation, how would I structure the input_object since there’s no payload I’d need to send.

Thank you

Any time you are making something “happen” in the system, it is a mutation. This remains true even if there is no particular payload. Mutations are not required to have arguments, so this isn’t really an issue.

3 Likes