OSF: Used model.NewPointer everywhere (#27838)

```release-note
NONE
```
Этот коммит содержится в:
Agniva De Sarker
2024-08-06 09:15:00 +05:30
коммит произвёл GitHub
родитель f290745496
Коммит c3ed07e679
148 изменённых файлов: 2341 добавлений и 2338 удалений

Просмотреть файл

@@ -496,7 +496,7 @@ func TestBotWouldPatch(t *testing.T) {
t.Run("patch", func(t *testing.T) {
patch := &BotPatch{
DisplayName: NewString("BotName"),
DisplayName: NewPointer("BotName"),
}
ok := b.WouldPatch(patch)
require.True(t, ok)
@@ -504,7 +504,7 @@ func TestBotWouldPatch(t *testing.T) {
t.Run("no patch", func(t *testing.T) {
patch := &BotPatch{
DisplayName: NewString("BotName"),
DisplayName: NewPointer("BotName"),
}
b.Patch(patch)
ok := b.WouldPatch(patch)

Просмотреть файл

@@ -3,11 +3,14 @@
package model
// These functions are deprecated. Please use only NewPointer.
func NewBool(b bool) *bool { return &b }
func NewInt(n int) *int { return &n }
func NewInt64(n int64) *int64 { return &n }
func NewString(s string) *string { return &s }
func NewPointer[T any](t T) *T { return &t }
// NewPointer returns a pointer to the object passed.
func NewPointer[T any](t T) *T { return &t }
// SafeDereference returns the zero value of T if t is nil.
// Otherwise it return the derference of t.

Просмотреть файл

@@ -24,7 +24,7 @@ func TestSafeDereference(t *testing.T) {
s := SafeDereference[string](nil)
assert.Equal(t, "", s)
s = SafeDereference(NewString("foo"))
s = SafeDereference(NewPointer("foo"))
assert.Equal(t, "foo", s)
})
@@ -32,7 +32,7 @@ func TestSafeDereference(t *testing.T) {
s := SafeDereference[*string](nil)
assert.Nil(t, s)
f := NewString("foo")
f := NewPointer("foo")
s = SafeDereference(&f)
assert.Equal(t, f, s)
})

Просмотреть файл

@@ -207,7 +207,7 @@ func WithID(ID string) ChannelOption {
func (o *Channel) DeepCopy() *Channel {
cCopy := *o
if cCopy.SchemeId != nil {
cCopy.SchemeId = NewString(*o.SchemeId)
cCopy.SchemeId = NewPointer(*o.SchemeId)
}
return &cCopy
}

Просмотреть файл

@@ -523,9 +523,9 @@ func TestChannelBookmarkPreUpdate(t *testing.T) {
func TestChannelBookmarkPatch(t *testing.T) {
p := &ChannelBookmarkPatch{
DisplayName: NewString(NewId()),
SortOrder: NewInt64(1),
LinkUrl: NewString(NewId()),
DisplayName: NewPointer(NewId()),
SortOrder: NewPointer(int64(1)),
LinkUrl: NewPointer(NewId()),
}
b := ChannelBookmark{

Просмотреть файл

@@ -2317,10 +2317,10 @@ func (c *Client4) SearchTeams(ctx context.Context, search *TeamSearch) ([]*Team,
// SearchTeamsPaged returns a page of teams and the total count matching the provided search term.
func (c *Client4) SearchTeamsPaged(ctx context.Context, search *TeamSearch) ([]*Team, int64, *Response, error) {
if search.Page == nil {
search.Page = NewInt(0)
search.Page = NewPointer(0)
}
if search.PerPage == nil {
search.PerPage = NewInt(100)
search.PerPage = NewPointer(100)
}
buf, err := json.Marshal(search)
if err != nil {

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@@ -145,10 +145,10 @@ func ExampleClient4_PatchChannel() {
channelId := "channel_id"
patch := &model.ChannelPatch{
Name: model.NewString("new_name"),
DisplayName: model.NewString("New Display Name"),
Header: model.NewString("New header"),
Purpose: model.NewString("New purpose"),
Name: model.NewPointer("new_name"),
DisplayName: model.NewPointer("New Display Name"),
Header: model.NewPointer("New header"),
Purpose: model.NewPointer("New purpose"),
}
_, _, err := client.PatchChannel(context.Background(), channelId, patch)

Просмотреть файл

@@ -88,7 +88,7 @@ func (fi *FileInfo) PreSave() {
}
if fi.RemoteId == nil {
fi.RemoteId = NewString("")
fi.RemoteId = NewPointer("")
}
}

Просмотреть файл

@@ -20,15 +20,15 @@ func TestGroupAuditable(t *testing.T) {
now := GetMillis()
g := Group{
Id: id,
Name: NewString("some name"),
Name: NewPointer("some name"),
DisplayName: "some display name",
Source: GroupSourceLdap,
RemoteId: NewString("some_remote"),
RemoteId: NewPointer("some_remote"),
CreateAt: now,
UpdateAt: now,
DeleteAt: now,
HasSyncables: true,
MemberCount: NewInt(10),
MemberCount: NewPointer(10),
AllowReference: true,
}
m := g.Auditable()
@@ -65,15 +65,15 @@ func TestGroupLogClone(t *testing.T) {
now := GetMillis()
g := Group{
Id: id,
Name: NewString("some name"),
Name: NewPointer("some name"),
DisplayName: "some display name",
Source: GroupSourceLdap,
RemoteId: NewString("some_remote"),
RemoteId: NewPointer("some_remote"),
CreateAt: now,
UpdateAt: now,
DeleteAt: now,
HasSyncables: true,
MemberCount: NewInt(10),
MemberCount: NewPointer(10),
AllowReference: true,
}
l := g.LogClone()

Просмотреть файл

@@ -42,10 +42,10 @@ func (r *IntegrityCheckResult) UnmarshalJSON(b []byte) error {
var record OrphanedRecord
m := recData.(map[string]any)
if val := m["parent_id"]; val != nil {
record.ParentId = NewString(val.(string))
record.ParentId = NewPointer(val.(string))
}
if val := m["child_id"]; val != nil {
record.ChildId = NewString(val.(string))
record.ChildId = NewPointer(val.(string))
}
rdata.Records = append(rdata.Records, record)
}

Просмотреть файл

@@ -189,127 +189,127 @@ func (f *Features) ToMap() map[string]any {
func (f *Features) SetDefaults() {
if f.FutureFeatures == nil {
f.FutureFeatures = NewBool(true)
f.FutureFeatures = NewPointer(true)
}
if f.Users == nil {
f.Users = NewInt(0)
f.Users = NewPointer(0)
}
if f.LDAP == nil {
f.LDAP = NewBool(*f.FutureFeatures)
f.LDAP = NewPointer(*f.FutureFeatures)
}
if f.LDAPGroups == nil {
f.LDAPGroups = NewBool(*f.FutureFeatures)
f.LDAPGroups = NewPointer(*f.FutureFeatures)
}
if f.MFA == nil {
f.MFA = NewBool(*f.FutureFeatures)
f.MFA = NewPointer(*f.FutureFeatures)
}
if f.GoogleOAuth == nil {
f.GoogleOAuth = NewBool(*f.FutureFeatures)
f.GoogleOAuth = NewPointer(*f.FutureFeatures)
}
if f.Office365OAuth == nil {
f.Office365OAuth = NewBool(*f.FutureFeatures)
f.Office365OAuth = NewPointer(*f.FutureFeatures)
}
if f.OpenId == nil {
f.OpenId = NewBool(*f.FutureFeatures)
f.OpenId = NewPointer(*f.FutureFeatures)
}
if f.Compliance == nil {
f.Compliance = NewBool(*f.FutureFeatures)
f.Compliance = NewPointer(*f.FutureFeatures)
}
if f.Cluster == nil {
f.Cluster = NewBool(*f.FutureFeatures)
f.Cluster = NewPointer(*f.FutureFeatures)
}
if f.Metrics == nil {
f.Metrics = NewBool(*f.FutureFeatures)
f.Metrics = NewPointer(*f.FutureFeatures)
}
if f.MHPNS == nil {
f.MHPNS = NewBool(*f.FutureFeatures)
f.MHPNS = NewPointer(*f.FutureFeatures)
}
if f.SAML == nil {
f.SAML = NewBool(*f.FutureFeatures)
f.SAML = NewPointer(*f.FutureFeatures)
}
if f.Elasticsearch == nil {
f.Elasticsearch = NewBool(*f.FutureFeatures)
f.Elasticsearch = NewPointer(*f.FutureFeatures)
}
if f.Announcement == nil {
f.Announcement = NewBool(true)
f.Announcement = NewPointer(true)
}
if f.ThemeManagement == nil {
f.ThemeManagement = NewBool(true)
f.ThemeManagement = NewPointer(true)
}
if f.EmailNotificationContents == nil {
f.EmailNotificationContents = NewBool(*f.FutureFeatures)
f.EmailNotificationContents = NewPointer(*f.FutureFeatures)
}
if f.DataRetention == nil {
f.DataRetention = NewBool(*f.FutureFeatures)
f.DataRetention = NewPointer(*f.FutureFeatures)
}
if f.MessageExport == nil {
f.MessageExport = NewBool(*f.FutureFeatures)
f.MessageExport = NewPointer(*f.FutureFeatures)
}
if f.CustomPermissionsSchemes == nil {
f.CustomPermissionsSchemes = NewBool(*f.FutureFeatures)
f.CustomPermissionsSchemes = NewPointer(*f.FutureFeatures)
}
if f.GuestAccounts == nil {
f.GuestAccounts = NewBool(*f.FutureFeatures)
f.GuestAccounts = NewPointer(*f.FutureFeatures)
}
if f.GuestAccountsPermissions == nil {
f.GuestAccountsPermissions = NewBool(*f.FutureFeatures)
f.GuestAccountsPermissions = NewPointer(*f.FutureFeatures)
}
if f.CustomTermsOfService == nil {
f.CustomTermsOfService = NewBool(*f.FutureFeatures)
f.CustomTermsOfService = NewPointer(*f.FutureFeatures)
}
if f.IDLoadedPushNotifications == nil {
f.IDLoadedPushNotifications = NewBool(*f.FutureFeatures)
f.IDLoadedPushNotifications = NewPointer(*f.FutureFeatures)
}
if f.LockTeammateNameDisplay == nil {
f.LockTeammateNameDisplay = NewBool(*f.FutureFeatures)
f.LockTeammateNameDisplay = NewPointer(*f.FutureFeatures)
}
if f.EnterprisePlugins == nil {
f.EnterprisePlugins = NewBool(*f.FutureFeatures)
f.EnterprisePlugins = NewPointer(*f.FutureFeatures)
}
if f.AdvancedLogging == nil {
f.AdvancedLogging = NewBool(*f.FutureFeatures)
f.AdvancedLogging = NewPointer(*f.FutureFeatures)
}
if f.Cloud == nil {
f.Cloud = NewBool(false)
f.Cloud = NewPointer(false)
}
if f.SharedChannels == nil {
f.SharedChannels = NewBool(*f.FutureFeatures)
f.SharedChannels = NewPointer(*f.FutureFeatures)
}
if f.RemoteClusterService == nil {
f.RemoteClusterService = NewBool(*f.FutureFeatures)
f.RemoteClusterService = NewPointer(*f.FutureFeatures)
}
if f.OutgoingOAuthConnections == nil {
f.OutgoingOAuthConnections = NewBool(*f.FutureFeatures)
f.OutgoingOAuthConnections = NewPointer(*f.FutureFeatures)
}
}

Просмотреть файл

@@ -447,7 +447,7 @@ func TestLicenseHasSharedChannels(t *testing.T) {
"licensed for shared channels",
License{
Features: &Features{
SharedChannels: NewBool(true),
SharedChannels: NewPointer(true),
},
SkuShortName: "other",
},

Просмотреть файл

@@ -18,8 +18,8 @@ func newValidOutgoingOAuthConnection() *OutgoingOAuthConnection {
Name: "Test Connection",
ClientId: NewId(),
ClientSecret: NewId(),
CredentialsUsername: NewString(NewId()),
CredentialsPassword: NewString(NewId()),
CredentialsUsername: NewPointer(NewId()),
CredentialsPassword: NewPointer(NewId()),
OAuthTokenURL: "https://nowhere.com/oauth/token",
GrantType: OutgoingOAuthConnectionGrantTypeClientCredentials,
CreateAt: GetMillis(),

Просмотреть файл

@@ -310,7 +310,7 @@ func (o *Post) ShallowCopy(dst *Post) error {
dst.LastReplyAt = o.LastReplyAt
dst.Metadata = o.Metadata
if o.IsFollowing != nil {
dst.IsFollowing = NewBool(*o.IsFollowing)
dst.IsFollowing = NewPointer(*o.IsFollowing)
}
dst.RemoteId = o.RemoteId
return nil
@@ -507,7 +507,7 @@ func (o *Post) SanitizeProps() {
// Remove any input data from the post object that is not user controlled
func (o *Post) SanitizeInput() {
o.DeleteAt = 0
o.RemoteId = NewString("")
o.RemoteId = NewPointer("")
}
func (o *Post) ContainsIntegrationsReservedProps() []string {

Просмотреть файл

@@ -53,7 +53,7 @@ func (o *Reaction) PreSave() {
o.DeleteAt = 0
if o.RemoteId == nil {
o.RemoteId = NewString("")
o.RemoteId = NewPointer("")
}
}
@@ -61,7 +61,7 @@ func (o *Reaction) PreUpdate() {
o.UpdateAt = GetMillis()
if o.RemoteId == nil {
o.RemoteId = NewString("")
o.RemoteId = NewPointer("")
}
}

Просмотреть файл

@@ -94,7 +94,7 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(true)},
},
},
"members",
@@ -106,7 +106,7 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Guests: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Guests: NewPointer(true)},
},
},
"members",
@@ -118,7 +118,7 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(true)},
},
},
"guests",
@@ -130,15 +130,15 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(false)},
},
{
Name: &manageMembers,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(false)},
},
{
Name: &channelMentions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(false)},
},
},
"members",
@@ -150,15 +150,15 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Guests: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Guests: NewPointer(false)},
},
{
Name: &manageMembers,
Roles: &ChannelModeratedRolesPatch{Guests: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Guests: NewPointer(false)},
},
{
Name: &channelMentions,
Roles: &ChannelModeratedRolesPatch{Guests: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Guests: NewPointer(false)},
},
},
"guests",
@@ -170,19 +170,19 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(false)},
},
{
Name: &manageMembers,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(false)},
},
{
Name: &channelMentions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(true)},
},
{
Name: &createPosts,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(true)},
},
},
"members",
@@ -194,7 +194,7 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(true)},
},
},
"members",
@@ -206,11 +206,11 @@ func TestRolePatchFromChannelModerationsPatch(t *testing.T) {
[]*ChannelModerationPatch{
{
Name: &createReactions,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(false)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(false)},
},
{
Name: &createPosts,
Roles: &ChannelModeratedRolesPatch{Members: NewBool(true)},
Roles: &ChannelModeratedRolesPatch{Members: NewPointer(true)},
},
},
"members",

Просмотреть файл

@@ -328,7 +328,7 @@ func (u UserSlice) FilterWithoutID(ids []string) UserSlice {
func (u *User) DeepCopy() *User {
copyUser := *u
if u.AuthData != nil {
copyUser.AuthData = NewString(*u.AuthData)
copyUser.AuthData = NewPointer(*u.AuthData)
}
if u.Props != nil {
copyUser.Props = CopyStringMap(u.Props)
@@ -658,7 +658,7 @@ func (u *User) Etag(showFullName, showEmail bool) string {
// Remove any private data from the user object
func (u *User) Sanitize(options map[string]bool) {
u.Password = ""
u.AuthData = NewString("")
u.AuthData = NewPointer("")
u.MfaSecret = ""
u.LastLogin = 0
@@ -681,11 +681,11 @@ func (u *User) Sanitize(options map[string]bool) {
// Remove any input data from the user object that is not user controlled
func (u *User) SanitizeInput(isAdmin bool) {
if !isAdmin {
u.AuthData = NewString("")
u.AuthData = NewPointer("")
u.AuthService = ""
u.EmailVerified = false
}
u.RemoteId = NewString("")
u.RemoteId = NewPointer("")
u.CreateAt = 0
u.UpdateAt = 0
u.DeleteAt = 0
@@ -700,7 +700,7 @@ func (u *User) SanitizeInput(isAdmin bool) {
func (u *User) ClearNonProfileFields(asAdmin bool) {
u.Password = ""
u.AuthData = NewString("")
u.AuthData = NewPointer("")
u.MfaSecret = ""
u.EmailVerified = false
u.AllowMarketing = false

Просмотреть файл

@@ -35,7 +35,7 @@ func TestUserAuditable(t *testing.T) {
DeleteAt: now,
Username: "some user_name",
Password: "some password",
AuthData: NewString("some_auth_data"),
AuthData: NewPointer("some_auth_data"),
AuthService: UserAuthServiceLdap,
Email: "test@example.org",
EmailVerified: true,
@@ -51,7 +51,7 @@ func TestUserAuditable(t *testing.T) {
Locale: DefaultLocale,
Timezone: timezones.DefaultUserTimezone(),
MfaActive: true,
RemoteId: NewString("some_remote"),
RemoteId: NewPointer("some_remote"),
}
m := u.Auditable()
@@ -115,7 +115,7 @@ func TestUserLogClone(t *testing.T) {
DeleteAt: now,
Username: "some user_name",
Password: "some password",
AuthData: NewString("some_auth_data"),
AuthData: NewPointer("some_auth_data"),
AuthService: UserAuthServiceLdap,
Email: "test@example.org",
EmailVerified: true,
@@ -131,7 +131,7 @@ func TestUserLogClone(t *testing.T) {
Locale: DefaultLocale,
Timezone: timezones.DefaultUserTimezone(),
MfaActive: true,
RemoteId: NewString("some_remote"),
RemoteId: NewPointer("some_remote"),
}
l := u.LogClone()
@@ -173,7 +173,7 @@ func TestUserDeepCopy(t *testing.T) {
mapKey := "key"
mapValue := "key"
user := &User{Id: id, AuthData: NewString(authData), Props: map[string]string{}, NotifyProps: map[string]string{}, Timezone: map[string]string{}}
user := &User{Id: id, AuthData: NewPointer(authData), Props: map[string]string{}, NotifyProps: map[string]string{}, Timezone: map[string]string{}}
user.Props[mapKey] = mapValue
user.NotifyProps[mapKey] = mapValue
user.Timezone[mapKey] = mapValue
@@ -281,7 +281,7 @@ func TestUserIsValid(t *testing.T) {
appErr = user.IsValid()
require.True(t, HasExpectedUserIsValidError(appErr, "email", user.Id, user.Email), "expected user is valid error: %s", appErr.Error())
user.RemoteId = NewString(NewId())
user.RemoteId = NewPointer(NewId())
require.Nil(t, user.IsValid())
user.FirstName = strings.Repeat("a", 65)
@@ -324,10 +324,10 @@ func TestUserSanitizeInput(t *testing.T) {
user.Nickname = "nickname"
user.FirstName = "firstname"
user.LastName = "lastname"
user.RemoteId = NewString(NewId())
user.RemoteId = NewPointer(NewId())
user.Position = "position"
user.Roles = "system_admin"
user.AuthData = NewString("authdata")
user.AuthData = NewPointer("authdata")
user.AuthService = "saml"
user.EmailVerified = true
user.FailedAttempts = 10
@@ -336,10 +336,10 @@ func TestUserSanitizeInput(t *testing.T) {
user.SanitizeInput(false)
// these fields should be reset
require.Equal(t, NewString(""), user.AuthData)
require.Equal(t, NewPointer(""), user.AuthData)
require.Equal(t, "", user.AuthService)
require.False(t, user.EmailVerified)
require.Equal(t, NewString(""), user.RemoteId)
require.Equal(t, NewPointer(""), user.RemoteId)
require.Equal(t, int64(0), user.CreateAt)
require.Equal(t, int64(0), user.UpdateAt)
require.Equal(t, int64(0), user.DeleteAt)