✨ Implement the GroupHelperService
This commit is contained in:
		
							parent
							
								
									f4e902d5f1
								
							
						
					
					
						commit
						91843e34e4
					
				
							
								
								
									
										103
									
								
								logic/grouphelperservice.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								logic/grouphelperservice.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,103 @@
 | 
				
			|||||||
 | 
					package logic
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"errors"
 | 
				
			||||||
 | 
						"git.dragon-labs.de/alphyron/group_helper/models"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type groupHelperService struct {
 | 
				
			||||||
 | 
						groupHelperRepo GroupHelperRepository
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func NewGroupHelperService(groupHelperRepo GroupHelperRepository) GroupHelperService {
 | 
				
			||||||
 | 
						return &groupHelperService{
 | 
				
			||||||
 | 
							groupHelperRepo: groupHelperRepo,
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) CreateGroup(group *models.Group) (*models.Group, error) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if group.GroupID == 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("you need set the group id to create a new group")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						group.FillDefaultValues()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.CreateGroup(group)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) UpdateGroup(group *models.Group) (*models.Group, error) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if group.GroupID == 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("you need set the group id to update an existing group")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.UpdateGroup(group)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) GetGroupByID(groupID int64) (*models.Group, error) {
 | 
				
			||||||
 | 
						return g.groupHelperRepo.GetGroupByID(groupID)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) GetGroupDatabaseSize(group *models.Group) (int, error) {
 | 
				
			||||||
 | 
						if group.ID == 0 {
 | 
				
			||||||
 | 
							return -1, errors.New("you need to set the id to get the size of connected users")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.groupHelperRepo.GetGroupDatabaseSize(group)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) CreateUser(user *models.User) (*models.User, error) {
 | 
				
			||||||
 | 
						if user.UserID == 0 {
 | 
				
			||||||
 | 
							return nil, errors.New("you need to set the userID to create a new user")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.groupHelperRepo.CreateUser(user)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) GetUserByID(userID int64) (*models.User, error) {
 | 
				
			||||||
 | 
						return g.groupHelperRepo.GetUserByID(userID)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) UserJoinGroup(user *models.User, group *models.Group) (bool, error) {
 | 
				
			||||||
 | 
						if user.ID == 0 {
 | 
				
			||||||
 | 
							return false, errors.New("you need to give a valid id from the user to join a group")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if group.ID == 0 {
 | 
				
			||||||
 | 
							return false, errors.New("you need to give a valid id from the group to let a user join")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.groupHelperRepo.UserJoinGroup(user, group)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) UserLeaveGroup(user *models.User, group *models.Group) (bool, error) {
 | 
				
			||||||
 | 
						if user.ID == 0 {
 | 
				
			||||||
 | 
							return false, errors.New("you need to give a valid id from the user to leave from group")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if group.ID == 0 {
 | 
				
			||||||
 | 
							return false, errors.New("you need to give a valid id from the group to let a user leave")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.groupHelperRepo.UserLeaveGroup(user, group)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) IsUserInGroup(user *models.User, group *models.Group) (bool, error) {
 | 
				
			||||||
 | 
						if user.ID == 0 {
 | 
				
			||||||
 | 
							return false, errors.New("you need to give a valid id from the user to check if he is in a group")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if group.ID == 0 {
 | 
				
			||||||
 | 
							return false, errors.New("you need to give a valid id from the group to check if a user is in the group")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return g.groupHelperRepo.UserJoinGroup(user, group)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) ListGroups() ([]*models.Group, error) {
 | 
				
			||||||
 | 
						return g.groupHelperRepo.ListGroups()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func (g groupHelperService) ListUsers() ([]*models.User, error) {
 | 
				
			||||||
 | 
						return g.groupHelperRepo.ListUsers()
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user