/
project.go
39 lines (32 loc) · 906 Bytes
/
project.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package services
import (
"github.com/Niromash/niromash-api/api"
"github.com/Niromash/niromash-api/model"
"gorm.io/gorm"
)
var _ api.ProjectService = (*ProjectService)(nil)
type ProjectService struct {
service api.MainService
}
func NewProjectService() *ProjectService {
return &ProjectService{}
}
func (p *ProjectService) Init(service api.MainService) error {
p.service = service
return nil
}
func (p *ProjectService) GetProject(id uint) (project *model.Project, err error) {
if err = p.service.Databases().Postgres().GetClient().First(&project, model.Project{Id: id}).Error; err != nil {
if err == gorm.ErrRecordNotFound {
err = api.ErrProjectNotFound
}
return
}
return
}
func (p *ProjectService) ListProjects() (projects []*model.Project, err error) {
if err = p.service.Databases().Postgres().GetClient().Order("id").Find(&projects).Error; err != nil {
return
}
return
}