Pull contents from metadata file
This commit is contained in:
parent
0b4ea2f213
commit
f8033e6b70
@ -4,7 +4,9 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/alcionai/clues"
|
"github.com/alcionai/clues"
|
||||||
@ -224,7 +226,12 @@ func streamConversationPosts(
|
|||||||
ictx := clues.Add(ctx, "path_short_ref", rc.FullPath().ShortRef())
|
ictx := clues.Add(ctx, "path_short_ref", rc.FullPath().ShortRef())
|
||||||
|
|
||||||
for item := range rc.Items(ctx, errs) {
|
for item := range rc.Items(ctx, errs) {
|
||||||
name := item.ID() + ".eml"
|
// Trim .data suffix from itemID
|
||||||
|
trimmedName := strings.TrimSuffix(item.ID(), dataFileSuffix)
|
||||||
|
name := trimmedName + ".eml"
|
||||||
|
meta, _ := getMetadataContents(ictx, item.ID(), rc)
|
||||||
|
|
||||||
|
fmt.Println(meta)
|
||||||
|
|
||||||
itemCtx := clues.Add(ictx, "stream_item_id", item.ID())
|
itemCtx := clues.Add(ictx, "stream_item_id", item.ID())
|
||||||
|
|
||||||
@ -285,47 +292,46 @@ func streamConversationPosts(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// func formatConversationPost(
|
func getMetadataContents(
|
||||||
// cec control.ExportConfig,
|
ctx context.Context,
|
||||||
// rc io.ReadCloser,
|
itemID string,
|
||||||
// ) (io.ReadCloser, error) {
|
fin data.FetchItemByNamer,
|
||||||
// if cec.Format == control.JSONFormat {
|
) (ConversationPostMetadata, error) {
|
||||||
// return rc, nil
|
// Trim .data suffix from itemID
|
||||||
// }
|
trimmedName := strings.TrimSuffix(itemID, dataFileSuffix)
|
||||||
|
metaName := trimmedName + metaFileSuffix
|
||||||
|
|
||||||
// bs, err := io.ReadAll(rc)
|
meta, err := fin.FetchItemByName(ctx, metaName)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, clues.Wrap(err, "reading item bytes")
|
return ConversationPostMetadata{}, clues.Wrap(err, "fetching metadata")
|
||||||
// }
|
}
|
||||||
|
|
||||||
// defer rc.Close()
|
metaReader := meta.ToReader()
|
||||||
|
defer metaReader.Close()
|
||||||
|
|
||||||
// cfb, err := api.CreateFromBytes(bs, models.CreateChatMessageFromDiscriminatorValue)
|
metaFormatted, err := getMetadata(metaReader)
|
||||||
// if err != nil {
|
if err != nil {
|
||||||
// return nil, clues.Wrap(err, "deserializing bytes to message")
|
return ConversationPostMetadata{}, clues.Wrap(err, "deserializing metadata")
|
||||||
// }
|
}
|
||||||
|
|
||||||
// msg, ok := cfb.(models.ChatMessageable)
|
return metaFormatted, nil
|
||||||
// if !ok {
|
}
|
||||||
// return nil, clues.New("expected deserialized item to implement models.ChatMessageable")
|
|
||||||
// }
|
|
||||||
|
|
||||||
// mItem := makeMinimumChannelMesasge(msg)
|
// getMetadata read and parses the metadata info for an item
|
||||||
// replies := msg.GetReplies()
|
func getMetadata(metar io.ReadCloser) (ConversationPostMetadata, error) {
|
||||||
|
var meta ConversationPostMetadata
|
||||||
|
// `metar` will be nil for the top level container folder
|
||||||
|
if metar != nil {
|
||||||
|
metaraw, err := io.ReadAll(metar)
|
||||||
|
if err != nil {
|
||||||
|
return ConversationPostMetadata{}, err
|
||||||
|
}
|
||||||
|
|
||||||
// mcmar := minimumChannelMessageAndReplies{
|
err = json.Unmarshal(metaraw, &meta)
|
||||||
// minimumChannelMessage: mItem,
|
if err != nil {
|
||||||
// Replies: make([]minimumChannelMessage, 0, len(replies)),
|
return ConversationPostMetadata{}, err
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// for _, r := range replies {
|
return meta, nil
|
||||||
// mcmar.Replies = append(mcmar.Replies, makeMinimumChannelMesasge(r))
|
}
|
||||||
// }
|
|
||||||
|
|
||||||
// bs, err = marshalJSONContainingHTML(mcmar)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, clues.Wrap(err, "serializing minimized channel message")
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return io.NopCloser(bytes.NewReader(bs)), nil
|
|
||||||
// }
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user