diff --git a/internal/router/api/v1/account/fetch.go b/internal/router/api/v1/account/fetch.go new file mode 100644 index 0000000..5fbb23d --- /dev/null +++ b/internal/router/api/v1/account/fetch.go @@ -0,0 +1,33 @@ +package account + +import ( + "git.supernets.org/perp/gopay/internal/context" + v1 "git.supernets.org/perp/gopay/internal/models/v1" +) + +// @summary Fetch an account +// @tags account +// @accept json +// @produce json +// @success 200 {object} v1.Account +// @response default {object} v1.Error "There was an error" +// @router /v1/account [get] +func Fetch(ctx *context.Context) { + // Call middleware + ctx.GetAccount() + + // Account not found + if ctx.Account == nil { + return + } + + // Create information + information := &v1.Account{ + ID: ctx.Account.ID, + Username: ctx.Account.Username, + Admin: ctx.Account.Admin, + Created: ctx.Account.Created.Unix(), + } + + ctx.JSON(200, information) +} diff --git a/internal/router/api/v1/v1.go b/internal/router/api/v1/v1.go index 0041459..d52b331 100644 --- a/internal/router/api/v1/v1.go +++ b/internal/router/api/v1/v1.go @@ -26,6 +26,7 @@ func Register(ctx *context.Context, engine *gin.Engine) { { a := v1.Group("account") + a.GET("", ctx.Register(account.Fetch)) a.POST("login", ctx.Register(account.Login)) a.POST("register", ctx.Register(account.Register)) }