Explicitly handle values in audit type conversion (#18768)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
dea8610f1e
Коммит
01f2b2089b
@@ -15,44 +15,84 @@ func AuditModelTypeConv(val interface{}) (newVal interface{}, converted bool) {
|
|||||||
switch v := val.(type) {
|
switch v := val.(type) {
|
||||||
case *Channel:
|
case *Channel:
|
||||||
return newAuditChannel(v), true
|
return newAuditChannel(v), true
|
||||||
|
case Channel:
|
||||||
|
return newAuditChannel(&v), true
|
||||||
case *Team:
|
case *Team:
|
||||||
return newAuditTeam(v), true
|
return newAuditTeam(v), true
|
||||||
|
case Team:
|
||||||
|
return newAuditTeam(&v), true
|
||||||
case *User:
|
case *User:
|
||||||
return newAuditUser(v), true
|
return newAuditUser(v), true
|
||||||
|
case User:
|
||||||
|
return newAuditUser(&v), true
|
||||||
case *Command:
|
case *Command:
|
||||||
return newAuditCommand(v), true
|
return newAuditCommand(v), true
|
||||||
|
case Command:
|
||||||
|
return newAuditCommand(&v), true
|
||||||
case *CommandArgs:
|
case *CommandArgs:
|
||||||
return newAuditCommandArgs(v), true
|
return newAuditCommandArgs(v), true
|
||||||
|
case CommandArgs:
|
||||||
|
return newAuditCommandArgs(&v), true
|
||||||
case *Bot:
|
case *Bot:
|
||||||
return newAuditBot(v), true
|
return newAuditBot(v), true
|
||||||
|
case Bot:
|
||||||
|
return newAuditBot(&v), true
|
||||||
case *ChannelModerationPatch:
|
case *ChannelModerationPatch:
|
||||||
return newAuditChannelModerationPatch(v), true
|
return newAuditChannelModerationPatch(v), true
|
||||||
|
case ChannelModerationPatch:
|
||||||
|
return newAuditChannelModerationPatch(&v), true
|
||||||
case *Emoji:
|
case *Emoji:
|
||||||
return newAuditEmoji(v), true
|
return newAuditEmoji(v), true
|
||||||
|
case Emoji:
|
||||||
|
return newAuditEmoji(&v), true
|
||||||
case *FileInfo:
|
case *FileInfo:
|
||||||
return newAuditFileInfo(v), true
|
return newAuditFileInfo(v), true
|
||||||
|
case FileInfo:
|
||||||
|
return newAuditFileInfo(&v), true
|
||||||
case *Group:
|
case *Group:
|
||||||
return newAuditGroup(v), true
|
return newAuditGroup(v), true
|
||||||
|
case Group:
|
||||||
|
return newAuditGroup(&v), true
|
||||||
case *Job:
|
case *Job:
|
||||||
return newAuditJob(v), true
|
return newAuditJob(v), true
|
||||||
|
case Job:
|
||||||
|
return newAuditJob(&v), true
|
||||||
case *OAuthApp:
|
case *OAuthApp:
|
||||||
return newAuditOAuthApp(v), true
|
return newAuditOAuthApp(v), true
|
||||||
|
case OAuthApp:
|
||||||
|
return newAuditOAuthApp(&v), true
|
||||||
case *Post:
|
case *Post:
|
||||||
return newAuditPost(v), true
|
return newAuditPost(v), true
|
||||||
|
case Post:
|
||||||
|
return newAuditPost(&v), true
|
||||||
case *Role:
|
case *Role:
|
||||||
return newAuditRole(v), true
|
return newAuditRole(v), true
|
||||||
|
case Role:
|
||||||
|
return newAuditRole(&v), true
|
||||||
case *Scheme:
|
case *Scheme:
|
||||||
return newAuditScheme(v), true
|
return newAuditScheme(v), true
|
||||||
|
case Scheme:
|
||||||
|
return newAuditScheme(&v), true
|
||||||
case *SchemeRoles:
|
case *SchemeRoles:
|
||||||
return newAuditSchemeRoles(v), true
|
return newAuditSchemeRoles(v), true
|
||||||
|
case SchemeRoles:
|
||||||
|
return newAuditSchemeRoles(&v), true
|
||||||
case *Session:
|
case *Session:
|
||||||
return newAuditSession(v), true
|
return newAuditSession(v), true
|
||||||
|
case Session:
|
||||||
|
return newAuditSession(&v), true
|
||||||
case *IncomingWebhook:
|
case *IncomingWebhook:
|
||||||
return newAuditIncomingWebhook(v), true
|
return newAuditIncomingWebhook(v), true
|
||||||
|
case IncomingWebhook:
|
||||||
|
return newAuditIncomingWebhook(&v), true
|
||||||
case *OutgoingWebhook:
|
case *OutgoingWebhook:
|
||||||
return newAuditOutgoingWebhook(v), true
|
return newAuditOutgoingWebhook(v), true
|
||||||
|
case OutgoingWebhook:
|
||||||
|
return newAuditOutgoingWebhook(&v), true
|
||||||
case *RemoteCluster:
|
case *RemoteCluster:
|
||||||
return newRemoteCluster(v), true
|
return newRemoteCluster(v), true
|
||||||
|
case RemoteCluster:
|
||||||
|
return newRemoteCluster(&v), true
|
||||||
}
|
}
|
||||||
return val, false
|
return val, false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,8 @@ func TestAuditModelTypeConv(t *testing.T) {
|
|||||||
{name: "int array", args: args{val: []int{77, 68}}, wantConverted: false, wantNewVal: []int{77, 68}},
|
{name: "int array", args: args{val: []int{77, 68}}, wantConverted: false, wantNewVal: []int{77, 68}},
|
||||||
{name: "struct pointer value", args: args{val: sample}, wantConverted: false, wantNewVal: sample},
|
{name: "struct pointer value", args: args{val: sample}, wantConverted: false, wantNewVal: sample},
|
||||||
{name: "struct pointer array", args: args{val: sampleArr}, wantConverted: false, wantNewVal: sampleArr},
|
{name: "struct pointer array", args: args{val: sampleArr}, wantConverted: false, wantNewVal: sampleArr},
|
||||||
{name: "model user", args: args{val: user}, wantConverted: true, wantNewVal: "XXX"},
|
{name: "model user pointer", args: args{val: user}, wantConverted: true, wantNewVal: "XXX"},
|
||||||
|
{name: "model user value", args: args{val: *user}, wantConverted: true, wantNewVal: "XXX"},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user