Implement auditUserPatch (#18794)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
246a0c297e
Коммит
deac72d2be
@@ -25,6 +25,10 @@ func AuditModelTypeConv(val interface{}) (newVal interface{}, converted bool) {
|
|||||||
return newAuditUser(v), true
|
return newAuditUser(v), true
|
||||||
case User:
|
case User:
|
||||||
return newAuditUser(&v), true
|
return newAuditUser(&v), true
|
||||||
|
case *UserPatch:
|
||||||
|
return newAuditUserPatch(v), true
|
||||||
|
case UserPatch:
|
||||||
|
return newAuditUserPatch(&v), true
|
||||||
case *Command:
|
case *Command:
|
||||||
return newAuditCommand(v), true
|
return newAuditCommand(v), true
|
||||||
case Command:
|
case Command:
|
||||||
@@ -168,6 +172,21 @@ func newAuditUser(u *User) auditUser {
|
|||||||
return user
|
return user
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type auditUserPatch struct {
|
||||||
|
Name string
|
||||||
|
}
|
||||||
|
|
||||||
|
// newAuditUserPatch creates a simplified representation of UserPatch for output to audit log.
|
||||||
|
func newAuditUserPatch(up *UserPatch) auditUserPatch {
|
||||||
|
var userPatch auditUserPatch
|
||||||
|
if up != nil {
|
||||||
|
if up.Username != nil {
|
||||||
|
userPatch.Name = *up.Username
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return userPatch
|
||||||
|
}
|
||||||
|
|
||||||
func (u auditUser) MarshalJSONObject(enc *gojay.Encoder) {
|
func (u auditUser) MarshalJSONObject(enc *gojay.Encoder) {
|
||||||
enc.StringKey("id", u.ID)
|
enc.StringKey("id", u.ID)
|
||||||
enc.StringKey("name", u.Name)
|
enc.StringKey("name", u.Name)
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ func TestAuditModelTypeConv(t *testing.T) {
|
|||||||
sampleArr := []*Sample{sample, sample2}
|
sampleArr := []*Sample{sample, sample2}
|
||||||
|
|
||||||
user := &User{}
|
user := &User{}
|
||||||
|
userPatch := &UserPatch{}
|
||||||
|
|
||||||
type args struct {
|
type args struct {
|
||||||
val interface{}
|
val interface{}
|
||||||
@@ -38,7 +39,9 @@ func TestAuditModelTypeConv(t *testing.T) {
|
|||||||
{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 pointer", 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"},
|
{name: "model user pointer", args: args{val: user}, wantConverted: true, wantNewVal: "XXX"},
|
||||||
|
{name: "user patch pointer", args: args{val: userPatch}, wantConverted: true, wantNewVal: "XXX"},
|
||||||
|
{name: "user patch value", args: args{val: *userPatch}, 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