From 9b2f52c4a41584cbb9a0234aa627ae00f183352f Mon Sep 17 00:00:00 2001 From: perp Date: Thu, 6 Jun 2024 19:56:35 +0100 Subject: [PATCH] Add account fetch endpoint --- internal/router/api/v1/account/fetch.go | 33 +++++++++++++++++++++++++ internal/router/api/v1/v1.go | 1 + 2 files changed, 34 insertions(+) create mode 100644 internal/router/api/v1/account/fetch.go 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)) }