GroupMember requires a user + group to already exist. Example for creating a group member for a random group + user. GroupMember(t, db, database.GroupMemberTable{ UserID: User(t, db, database.User{}).ID, GroupID: Group(t, db, database.Group{ OrganizationID: must(db.GetDefaultOrganizati
(t testing.TB, db database.Store, member database.GroupMemberTable)
| 1100 | // }).ID, |
| 1101 | // }) |
| 1102 | func GroupMember(t testing.TB, db database.Store, member database.GroupMemberTable) database.GroupMember { |
| 1103 | require.NotEqual(t, member.UserID, uuid.Nil, "A user id is required to use 'dbgen.GroupMember', use 'dbgen.User'.") |
| 1104 | require.NotEqual(t, member.GroupID, uuid.Nil, "A group id is required to use 'dbgen.GroupMember', use 'dbgen.Group'.") |
| 1105 | |
| 1106 | //nolint:gosimple |
| 1107 | err := db.InsertGroupMember(genCtx, database.InsertGroupMemberParams{ |
| 1108 | UserID: member.UserID, |
| 1109 | GroupID: member.GroupID, |
| 1110 | }) |
| 1111 | require.NoError(t, err, "insert group member") |
| 1112 | |
| 1113 | user, err := db.GetUserByID(genCtx, member.UserID) |
| 1114 | if errors.Is(err, sql.ErrNoRows) { |
| 1115 | require.NoErrorf(t, err, "'dbgen.GroupMember' failed as the user with id %s does not exist. A user is required to use this function, use 'dbgen.User'.", member.UserID) |
| 1116 | } |
| 1117 | require.NoError(t, err, "get user by id") |
| 1118 | |
| 1119 | group, err := db.GetGroupByID(genCtx, member.GroupID) |
| 1120 | if errors.Is(err, sql.ErrNoRows) { |
| 1121 | require.NoErrorf(t, err, "'dbgen.GroupMember' failed as the group with id %s does not exist. A group is required to use this function, use 'dbgen.Group'.", member.GroupID) |
| 1122 | } |
| 1123 | require.NoError(t, err, "get group by id") |
| 1124 | |
| 1125 | groupMember := database.GroupMember{ |
| 1126 | UserID: user.ID, |
| 1127 | UserEmail: user.Email, |
| 1128 | UserUsername: user.Username, |
| 1129 | UserHashedPassword: user.HashedPassword, |
| 1130 | UserCreatedAt: user.CreatedAt, |
| 1131 | UserUpdatedAt: user.UpdatedAt, |
| 1132 | UserStatus: user.Status, |
| 1133 | UserRbacRoles: user.RBACRoles, |
| 1134 | UserLoginType: user.LoginType, |
| 1135 | UserAvatarUrl: user.AvatarURL, |
| 1136 | UserDeleted: user.Deleted, |
| 1137 | UserLastSeenAt: user.LastSeenAt, |
| 1138 | UserQuietHoursSchedule: user.QuietHoursSchedule, |
| 1139 | UserName: user.Name, |
| 1140 | UserGithubComUserID: user.GithubComUserID, |
| 1141 | OrganizationID: group.OrganizationID, |
| 1142 | GroupName: group.Name, |
| 1143 | GroupID: group.ID, |
| 1144 | } |
| 1145 | |
| 1146 | return groupMember |
| 1147 | } |
| 1148 | |
| 1149 | // ProvisionerDaemon creates a provisioner daemon as far as the database is concerned. It does not run a provisioner daemon. |
| 1150 | // If no key is provided, it will create one. |