package token import ( "time" "github.com/veypi/OneAuth/cfg" "github.com/veypi/OneAuth/models" "github.com/vyes/vigo" ) // var _ = Router.Patch("/:token_id", tokenPatch) type patchOpts struct { ID string `json:"id" parse:"path@token_id"` ExpiredAt *time.Time `json:"expired_at" parse:"json"` OverPerm *string `json:"over_perm" parse:"json"` } func tokenPatch(x *vigo.X) (any, error) { opts := &patchOpts{} err := x.Parse(opts) if err != nil { return nil, err } data := &models.Token{} err = cfg.DB().Where("id = ?", opts.ID).First(data).Error if err != nil { return nil, err } optsMap := make(map[string]interface{}) if opts.ExpiredAt != nil { optsMap["expired_at"] = opts.ExpiredAt } if opts.OverPerm != nil { optsMap["over_perm"] = opts.OverPerm } err = cfg.DB().Model(data).Updates(optsMap).Error return data, err } var _ = Router.Delete("/:token_id", tokenDelete) func tokenDelete(x *vigo.X) (any, error) { data := &models.Token{} err := cfg.DB().Where("id = ?", x.Params.Get("token_id")).Delete(data).Error return data, err }