Dunlin is a lightweight, self-hosted CDN for personal projects.
at master 810 B view raw
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}