Hasura Set Up

Let's head over to our users table to modify it a bit.

We shall be adding two columns:

  • wins (Integer, non-nullable, default: 0)
  • losses (Integer, non-nullable, default: 0)

Next, go to the Permissions tab and update the Select permission for the user role.

User Select Permission

Now, we create an new Action.

Go to the Actions tab and create a new action.

In the Action Definition, put

type Mutation {
BattleComplete (
id: Int!
): BattleCompleteOutput

In the new types definition, put

type BattleCompleteOutput {
status : String!
message : String!

BattleComplete Action

What this does is create a mutation action that takes in an Integer id as arguments and returns a BattleCompleteOutput object.

The BattleCompleteOutput is defined in the new types definition to contain two strings, status and message

Glitch Set Up

We're going to host another little project on Glitch to do out logic when BattleComplete is called.

Open the Glitch Project and click Remix To Edit

Go to env and set the SECRET to your ADMIN_SECRET


Great, rename the project appropriately and copy the link to the live app.

That's all the set up for that. Let me explain a bit of what this Glitch project does.

Battle Complete Explanation

When we call the BattleComplete action in Hasura, we set the argument to be the id of the battle we want to complete.

The Glitch projects gets the battle from Hasura, checks who wins by comparing hitTargets.Length with defendedTargets.Length.

Then it gets the two users in the battle from the shooter_id and defender_id of the battle and increases the wins column of the winner and losses column of the loser.

Then it deletes the battle. That's basically what the Glitch project does. Now let's connect it to our Hasura Action.

Connect To Hasura

Go back to the Hasura console and open the action we created. In the handler, paste the link to the Glitch live app + /battleComplete.

for example, if the link is!/shooter-battle-complete, we'll set the handler to!/shooter-battle-complete/battleComplete


That's it for setting up the action!


Get Started with GraphQL Now

Hasura Cloud gives you a fully managed, production ready GraphQL API as a service to help you build modern apps faster.
Ready to get started?
Start for free on Hasura Cloud or you could contact our sales team for a detailed walk-through on how Hasura may benefit your business.
Stay in the know
Sign up for full access to our community highlights, new features, and occasional baby animal gifs! Oh, and we have a strict no-spam rule. ✌️