Этот коммит содержится в:
Claudio Costa
2021-10-21 20:29:17 +02:00
коммит произвёл GitHub
родитель 246a0c297e
Коммит deac72d2be
2 изменённых файлов: 23 добавлений и 1 удалений

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

@@ -25,6 +25,10 @@ func AuditModelTypeConv(val interface{}) (newVal interface{}, converted bool) {
return newAuditUser(v), true
case User:
return newAuditUser(&v), true
case *UserPatch:
return newAuditUserPatch(v), true
case UserPatch:
return newAuditUserPatch(&v), true
case *Command:
return newAuditCommand(v), true
case Command:
@@ -168,6 +172,21 @@ func newAuditUser(u *User) auditUser {
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) {
enc.StringKey("id", u.ID)
enc.StringKey("name", u.Name)

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

@@ -20,6 +20,7 @@ func TestAuditModelTypeConv(t *testing.T) {
sampleArr := []*Sample{sample, sample2}
user := &User{}
userPatch := &UserPatch{}
type args struct {
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 array", args: args{val: sampleArr}, wantConverted: false, wantNewVal: sampleArr},
{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 {
t.Run(tt.name, func(t *testing.T) {