mirror of
https://github.com/Jinnrry/PMail.git
synced 2025-10-28 18:44:30 +08:00
36 lines
969 B
Go
36 lines
969 B
Go
package models
|
|
|
|
import (
|
|
"pmail/db"
|
|
"pmail/utils/context"
|
|
"pmail/utils/errors"
|
|
)
|
|
|
|
type Rule struct {
|
|
Id int `db:"id" json:"id"`
|
|
UserId string `db:"user_id" json:"user_id"`
|
|
Name string `db:"name" json:"name"`
|
|
Value string `db:"value" json:"value"`
|
|
Action int `db:"action" json:"action"`
|
|
Params string `db:"params" json:"params"`
|
|
Sort int `db:"sort" json:"sort"`
|
|
}
|
|
|
|
func (p *Rule) Save(ctx *context.Context) error {
|
|
|
|
if p.Id > 0 {
|
|
_, err := db.Instance.Exec(db.WithContext(ctx, "update rule set name=? ,value = ? ,action = ?,params = ?,sort = ? where id = ?"), p.Name, p.Value, p.Action, p.Params, p.Sort, p.Id)
|
|
if err != nil {
|
|
return errors.Wrap(err)
|
|
}
|
|
return nil
|
|
} else {
|
|
_, err := db.Instance.Exec(db.WithContext(ctx, "insert into rule (name,value,user_id,action,params,sort) values (?,?,?,?,?,?)"), p.Name, p.Value, ctx.UserID, p.Action, p.Params, p.Sort)
|
|
if err != nil {
|
|
return errors.Wrap(err)
|
|
}
|
|
return nil
|
|
}
|
|
|
|
}
|