スプレッドシート メリット
スプレッドシート デメリット
[][]interface{}
で返ってくるところまでしか保証してなかったりとか
↓
書いた
https://gist.github.com/somen440/fbabd858157b0cd8966a95849f277d97
struct を受け取って文字列として変換、受け取る struct はスプレッドシートへ展開できる平データ( struct をネストしてない)であることを期待。(ネストされてる場合, reflect.Value.NumField でコケる)。
repository 実装として扱う場合
... Create(ctx context.Context, entity *domain.Postmortem) error {
id, err := r.c.NextID(ctx)
if err != nil {
return err
}
entity.ID = id
m := convPostmortemToORM(entity)
if err := r.c.Insert(ctx, m); err != nil {
return err
}
util.LoggingDebug(ctx, "repo.Create", logrus.Fields{"id": id})
return nil
}
... List(ctx context.Context, pageSize int32, pageToken string) ([]*domain.PostmortemSummary, string, error) {
// todo: pagination
stList := []Postmortem{}
if err := r.c.List(ctx, startCol, endCol, &stList); err != nil {
return nil, "", err
}
sort.Slice(stList, func(i, j int) bool {
return stList[i].DetectionTime.Before(stList[j].DetectionTime)
})
util.LoggingDebug(ctx, "List", logrus.Fields{"lis": stList})
return convPostmortemListToEntitySummary(stList), "", nil
}
だいぶ, 抽象化された気はする完