1package services
2
3import (
4 "errors"
5
6 "github.com/dinkelspiel/cdn/dao"
7 "github.com/dinkelspiel/cdn/db"
8 "github.com/dinkelspiel/cdn/models"
9 "github.com/gosimple/slug"
10)
11
12func CreateTeamProject(db *db.DB, teamProject models.TeamProject) (*models.TeamProject, error) {
13 teamProjectSlug := slug.Make(teamProject.Name)
14
15 existingTeamProject, err := dao.GetTeamProjectInTeamBySlug(db, *teamProject.Team, teamProjectSlug)
16 if err != nil {
17 return nil, err
18 }
19 if existingTeamProject != nil {
20 return nil, errors.New("team project with slug already exist")
21 }
22
23 // TODO: User authorization
24
25 _teamProject, err := dao.CreateTeamProject(db, teamProject)
26 if err != nil {
27 return nil, err
28 }
29
30 _, err = CreateTeamProjectFolder(*_teamProject, "/")
31 if err != nil {
32 return nil, err
33 }
34
35 return _teamProject, nil
36}