129: Index multivalued attributes. #128
@ -354,23 +354,25 @@ func (k Keeper) ProcessAttributes(ctx sdk.Context, record types.RecordType) erro
|
|||||||
rt := reflect.TypeOf(attr)
|
rt := reflect.TypeOf(attr)
|
||||||
switch rt.Kind() {
|
switch rt.Kind() {
|
||||||
case reflect.Slice:
|
case reflect.Slice:
|
||||||
|
{
|
||||||
av := attr.([]interface{})
|
av := attr.([]interface{})
|
||||||
for i := range av {
|
for i := range av {
|
||||||
indexKey := GetAttributesIndexKey(key, av[i])
|
indexKey := GetAttributesIndexKey(key, av[i])
|
||||||
k.Logger(ctx).Error(fmt.Sprintf("attr indexKey: %s", indexKey))
|
|
||||||
if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil {
|
if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
|
{
|
||||||
indexKey := GetAttributesIndexKey(key, attr)
|
indexKey := GetAttributesIndexKey(key, attr)
|
||||||
k.Logger(ctx).Error(fmt.Sprintf("attr indexKey: %s", indexKey))
|
|
||||||
if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil {
|
if err := k.SetAttributeMapping(ctx, indexKey, record.ID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("unsupported record type %s", record.Attributes["type"])
|
return fmt.Errorf("unsupported record type %s", record.Attributes["type"])
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user