func (dao *LogIndexRiakDAO) GetLogIndex(userId string) (ent.TimelineIndex, error) { index := ent.TimelineIndex{} responce := dao.fetch(userId) if responce == nil || responce.IsNotFound { return index, nil } if err := json.Unmarshal(responce.Values[0].Value, &index); err != nil { return nil, err } index = ent.SortEntries(index) return index, nil }
func (dao *LogIndexRiakDAO) AppendToLogIndex(userId string, entry ent.IndexEntry) error { value := riak.Object{} value.ContentType = "application/json" value.Charset = "utf-8" value.ContentEncoding = "utf-8" index := ent.TimelineIndex{entry} if responce := dao.fetch(userId); responce != nil && !responce.IsNotFound { value.VClock = responce.VClock if err := json.Unmarshal(responce.Values[0].Value, &index); err != nil { return err } } index = ent.SortEntries(append(index, entry)) encoded, _ := json.Marshal(index) value.Value = encoded return dao.store(userId, value) }