package services import "github.com/gin-gonic/gin" type AuthService struct { ctx *Context } func (s *AuthService) FromContext(ctx *gin.Context) (*SessionItem, error) { return s.ctx.Services.Sessions.FromContext(ctx) } func (s *AuthService) Login(ctx *gin.Context) error { session, err := s.ctx.Services.Sessions.Create() if err != nil { return err } s.ctx.Services.Sessions.ToContext(ctx, session) return nil } func (s *AuthService) Logout(ctx *gin.Context) error { session, err := s.ctx.Services.Sessions.FromContext(ctx) if err != nil { return err } if err := s.ctx.Services.Sessions.Destroy(session.Id); err != nil { return err } s.ctx.Services.Sessions.ClearContext(ctx) return nil }