51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package repository
|
|
|
|
import (
|
|
"esproject"
|
|
"fmt"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type InviteSchema struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
func NewInviteSchema(db *gorm.DB) *InviteSchema {
|
|
return &InviteSchema{db: db}
|
|
}
|
|
|
|
func (r InviteSchema) CreateInvite(project int64, user int64) (*esproject.ProjectInvite, error) {
|
|
invite := &esproject.ProjectInvite{
|
|
Project: project,
|
|
User: user,
|
|
}
|
|
err := r.db.Create(invite).Error
|
|
return invite, err
|
|
}
|
|
|
|
func (r InviteSchema) GetInvite(id int64) (*esproject.ProjectInvite, error) {
|
|
invite := esproject.ProjectInvite{}
|
|
err := r.db.Find(&invite, "id = ?", id).Error
|
|
if invite.Id == -1 {
|
|
err = fmt.Errorf("unknown invite %d", id)
|
|
}
|
|
return &invite, err
|
|
}
|
|
|
|
func (r InviteSchema) FindInvites(query, param string) ([]esproject.ProjectInvite, error) {
|
|
var invites []esproject.ProjectInvite
|
|
err := r.db.Find(&invites, query, param).Error
|
|
return invites, err
|
|
}
|
|
|
|
func (r InviteSchema) DeleteInvite(id int64) error {
|
|
invite := esproject.ProjectInvite{}
|
|
err := r.db.Find(&invite, "id = ?", id).Error
|
|
if invite.Id == -1 {
|
|
err = fmt.Errorf("unknown invite %d", id)
|
|
}
|
|
r.db.Delete(invite)
|
|
return err
|
|
}
|