gitlab.com/picnic-app/backend/role-api@v0.0.0-20230614140944-06a76ff3696d/internal/controller/common_test.go (about) 1 package controller_test 2 3 import ( 4 "context" 5 6 "github.com/google/uuid" 7 8 v1 "gitlab.com/picnic-app/backend/libs/golang/protobuf-registry/gen/role-api/role/v1" 9 "gitlab.com/picnic-app/backend/role-api/internal/controller/serialize" 10 "gitlab.com/picnic-app/backend/role-api/internal/model" 11 ) 12 13 func setUpRole(container Container) (*v1.Role, error) { 14 name := uuid.NewString() 15 permissions := []*v1.Permission{ 16 { 17 Service: "Content", 18 Operation: "CreatePost", 19 Scope: "*", 20 }, 21 { 22 Service: "Chat", 23 Operation: "SendMessage", 24 Scope: "*", 25 }, 26 } 27 28 ctx := context.Background() 29 30 // create 31 createResponse, err := container.controller.CreateRole( 32 ctx, 33 &v1.CreateRoleRequest{ 34 Role: &v1.Role{ 35 Name: name, 36 Permissions: permissions, 37 }, 38 }, 39 ) 40 if err != nil { 41 return nil, err 42 } 43 44 // get 45 getResponse, err := container.controller.GetRole( 46 ctx, 47 &v1.GetRoleRequest{ 48 Id: createResponse.Id, 49 }, 50 ) 51 if err != nil { 52 return nil, err 53 } 54 55 return getResponse.Role, nil 56 } 57 58 func setUpAssignedRole( 59 container Container, 60 entityID, circleID, userID string, 61 permissions ...model.Permission) (*v1.Role, error) { 62 name := uuid.NewString() 63 64 if len(permissions) == 0 { 65 permissions = append(permissions, 66 model.Permission{ 67 Service: "Content", 68 Operation: "CreatePost", 69 Scope: "*", 70 }, 71 model.Permission{ 72 Service: "Chat", 73 Operation: "SendMessage", 74 Scope: "*", 75 }, 76 ) 77 } 78 79 ctx := context.Background() 80 81 // create 82 createResponse, err := container.controller.CreateRole( 83 ctx, 84 &v1.CreateRoleRequest{ 85 Role: &v1.Role{ 86 Name: name, 87 Permissions: serialize.Permissions(permissions), 88 }, 89 }, 90 ) 91 if err != nil { 92 return nil, err 93 } 94 95 // get 96 getResponse, err := container.controller.GetRole( 97 ctx, 98 &v1.GetRoleRequest{ 99 Id: createResponse.Id, 100 }, 101 ) 102 if err != nil { 103 return nil, err 104 } 105 106 // assign 107 _, err = container.controller.AssignRole( 108 ctx, 109 &v1.AssignRoleRequest{ 110 EntityId: entityID, 111 RoleId: getResponse.Role.Id, 112 CircleId: circleID, 113 UserId: userID, 114 }, 115 ) 116 if err != nil { 117 return nil, err 118 } 119 120 return getResponse.Role, nil 121 }