update config.yml, invite_schema.go, repository.go

This commit is contained in:
redtea committed 2024-10-21 12:00:00 +03:00
1 parent b6133df436
commit 2c169c7d4d
3 files changed
+91

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
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
}
+35
View File
@@ -0,0 +1,35 @@
package repository
import (
"esproject"
"gorm.io/gorm"
)
type Project interface {
CreateProject(owner int64, name string, tags []string) (*esproject.Project, error)
SaveProject(user *esproject.Project) (int64, error)
GetProject(id int64) (*esproject.Project, error)
GetProjects(start, limit int) []int64
DeleteProject(id int64) error
GetProjectsCount() int64
}
type ProjectInvite interface {
CreateInvite(project int64, user int64) (*esproject.ProjectInvite, error)
GetInvite(id int64) (*esproject.ProjectInvite, error)
FindInvites(query, param string) ([]esproject.ProjectInvite, error)
DeleteInvite(id int64) error
}
type Repository struct {
Project
ProjectInvite
}
func NewRepository(db *gorm.DB) *Repository {
return &Repository{
Project: NewProjectSchema(db),
ProjectInvite: NewInviteSchema(db),
}
}