Skip to content

Instantly share code, notes, and snippets.

@benbpyle
Created February 1, 2023 19:30
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save benbpyle/66be02d7e90147c3c8c2bba123dbfb25 to your computer and use it in GitHub Desktop.
UserRole go
type UserRole struct {
EntityType string `dynamodbav:"EntityType"`
Roles []Role `dynamodbav:"Roles"`
}
type Role struct {
Id int
Name string
}
func (r *Role) UnmarshalDynamoDBAttributeValue(value *dynamodb.AttributeValue) error {
for k, kv := range value.M {
if k == "id" {
v, _ := strconv.ParseInt(*kv.N, 10, 32)
r.Id = int(v)
} else if k == "name" {
r.Name = *kv.S
}
}
return nil
}
func (ur *UserRole) UnmarshalDynamoDBAttributeValue(value *dynamodb.AttributeValue) error {
for k, kv := range value.M {
if k == "EntityType" {
ur.EntityType = *kv.S
} else if k == "Roles" {
for _, nkv := range kv.M {
r := &Role{}
err := dynamodbattribute.UnmarshalMap(nkv.M, r)
if err != nil {
return err
}
ur.Roles = append(ur.Roles, *r)
}
}
}
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment