DEVELOPMENT ENVIRONMENT

~liljamo/deck-builder

55f9145bbef6ba98cb61a161c7b7072a26249649 — Jonni Liljamo 1 year, 9 months ago 01e7dee
feat(sdbapi): init game management apis
2 files changed, 34 insertions(+), 0 deletions(-)

M sdbapi/main.go
A sdbapi/models/game.go
M sdbapi/main.go => sdbapi/main.go +7 -0
@@ 45,6 45,13 @@ func createRouter() *gin.Engine {
				userp.GET("/:id", handlers.UserInfoP)
			}
		}
		game := api.Group("/game").Use(middlewares.Auth())
		{
			game.GET("/:id", handlers.GameInfo)
			game.GET("/get_forming", handlers.FormingGames)
			game.POST("/create", handlers.CreateGame)
			game.PATCH("/:id/state", handlers.PatchGame)
		}
	}
	return router
}

A sdbapi/models/game.go => sdbapi/models/game.go +27 -0
@@ 0,0 1,27 @@
/*
 * This file is part of sdbapi
 * Copyright (C) 2022 Jonni Liljamo <jonni@liljamo.com>
 *
 * Licensed under GPL-3.0-only.
 * See LICENSE for licensing information.
 */

package models

import (
	"gorm.io/gorm"
)

const (
	GAMESTATE_FORMING    uint8 = 0
	GAMESTATE_INPROGRESS uint8 = 1
	GAMESTATE_FINISHED   uint8 = 2
)

type Game struct {
	gorm.Model
	ID    string `json:"id" gorm:"primarykey;type:uuid;default:gen_random_uuid()"`
	P1    User   `json:"p1" gorm:"foreignkey:ID"`
	P2    User   `json:"p2" gorm:"foreignkey:ID"`
	State uint8  `json:"state" gorm:"type:smallint"`
}