Skip to content

Commit

Permalink
feat: add document name to publisher params
Browse files Browse the repository at this point in the history
  • Loading branch information
anasmuhmd committed Aug 3, 2024
1 parent 976a51f commit 22cba2a
Show file tree
Hide file tree
Showing 12 changed files with 113 additions and 102 deletions.
2 changes: 1 addition & 1 deletion engine/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ func (e *Engine) RenderAndPublishContent(ctx context.Context, target string) (co
span.End()
}()
e.logger.InfoContext(ctx, "Publishing the content", "target", target)
diag = doc.Publish(ctx, content, dataCtx)
diag = doc.Publish(ctx, content, dataCtx, target)
if diags.Extend(diag) {
return nil, diags
}
Expand Down
4 changes: 2 additions & 2 deletions eval/document.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ func (doc *Document) RenderContent(ctx context.Context, docDataCtx plugin.MapDat
return result, docDataCtx, diags
}

func (doc *Document) Publish(ctx context.Context, content plugin.Content, data plugin.Data) diagnostics.Diag {
func (doc *Document) Publish(ctx context.Context, content plugin.Content, data plugin.Data, documentName string) diagnostics.Diag {
logger := *slog.Default()
logger.DebugContext(ctx, "Fetching data for the document template")
docData := plugin.MapData{
Expand All @@ -125,7 +125,7 @@ func (doc *Document) Publish(ctx context.Context, content plugin.Content, data p
}
var diags diagnostics.Diag
for _, block := range doc.PublishBlocks {
diag := block.Publish(ctx, dataCtx)
diag := block.Publish(ctx, dataCtx, documentName)
if diag != nil {
diags.Extend(diag)
}
Expand Down
11 changes: 6 additions & 5 deletions eval/plugin_publish_action.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ type PluginPublishAction struct {
Format plugin.OutputFormat
}

func (block *PluginPublishAction) Publish(ctx context.Context, dataCtx plugin.MapData) diagnostics.Diag {
func (block *PluginPublishAction) Publish(ctx context.Context, dataCtx plugin.MapData, documentName string) diagnostics.Diag {
return block.Publisher.Execute(ctx, &plugin.PublishParams{
Config: block.Config,
Args: block.Args,
DataContext: dataCtx,
Format: block.Format,
Config: block.Config,
Args: block.Args,
DataContext: dataCtx,
Format: block.Format,
DocumentName: documentName,
})
}

Expand Down
21 changes: 1 addition & 20 deletions internal/github/publish_github_gist.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,24 +73,6 @@ func parseContent(data plugin.MapData) (document *plugin.ContentSection) {
return
}

func parseName(data plugin.MapData) (name string) {
documentMap, ok := data["document"]
if !ok {
return
}
metaMap, ok := documentMap.(plugin.MapData)["meta"]
if !ok {
return
}
documentName := metaMap.(plugin.MapData)["name"]
docName, ok := documentName.(plugin.StringData)
if !ok {
return
}
name = string(docName)
return
}

func publishGithubGist(loader ClientLoaderFn) plugin.PublishFunc {
// TODO: confirm if to be passed from the caller
logger := slog.New(slog.NewTextHandler(io.Discard, nil))
Expand Down Expand Up @@ -133,8 +115,7 @@ func publishGithubGist(loader ClientLoaderFn) plugin.PublishFunc {
}

client := loader(params.Config.GetAttr("github_token").AsString())

fileName := parseName(params.DataContext) + "." + params.Format.String()
fileName := params.DocumentName + "." + params.Format.String()
filenameAttr := params.Args.GetAttr("filename")
if !filenameAttr.IsNull() && filenameAttr.AsString() != "" {
fileName = filenameAttr.AsString()
Expand Down
11 changes: 7 additions & 4 deletions internal/github/publish_github_gist_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ func (s *GithubPublishGistTestSuite) TestBasic() {
},
},
},
DocumentName: "test_doc",
})
s.Require().Nil(diags)
}
Expand All @@ -107,9 +108,9 @@ func (s *GithubPublishGistTestSuite) TestFilenameOptional() {
Description: gh.String("test description"),
Public: gh.Bool(false),
Files: map[gh.GistFilename]gh.GistFile{
"test_document.md": {
"test_doc.md": {
Content: gh.String("# Header 1\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit."),
Filename: gh.String("test_document.md"),
Filename: gh.String("test_doc.md"),
},
},
}).Return(&gh.Gist{HTMLURL: gh.String("http://gist.github.com/mock")}, &gh.Response{}, nil)
Expand Down Expand Up @@ -150,6 +151,7 @@ func (s *GithubPublishGistTestSuite) TestFilenameOptional() {
},
},
},
DocumentName: "test_doc",
})
s.Require().Nil(diags)
}
Expand All @@ -169,9 +171,9 @@ func (s *GithubPublishGistTestSuite) TestResetOldFiles() {
Public: gh.Bool(false),
Files: map[gh.GistFilename]gh.GistFile{
"oldfile.md": {},
"test_document.md": {
"test_doc.md": {
Content: gh.String("# Header 1\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit."),
Filename: gh.String("test_document.md"),
Filename: gh.String("test_doc.md"),
},
},
}).Return(&gh.Gist{HTMLURL: gh.String("http://gist.github.com/mock")}, &gh.Response{}, nil)
Expand Down Expand Up @@ -212,6 +214,7 @@ func (s *GithubPublishGistTestSuite) TestResetOldFiles() {
},
},
},
DocumentName: "test_doc",
})
s.Require().Nil(diags)
}
1 change: 1 addition & 0 deletions plugin/logging.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ func makePublisherLogging(plugin, name string, publisher Publisher, logger *slog
slog.String("format", params.Format.String()),
slog.Any("config", logDataSpecValue(publisher.Config, params.Config)),
slog.Any("args", logDataSpecValue(publisher.Args, params.Args)),
slog.String("document_name", params.DocumentName),
))
return next(ctx, params)
}
Expand Down
11 changes: 6 additions & 5 deletions plugin/pluginapi/v1/plugin.go
Original file line number Diff line number Diff line change
Expand Up @@ -152,11 +152,12 @@ func (p *grpcPlugin) clientPublishFunc(name string, client PluginServiceClient)
datactx := encodeMapData(params.DataContext)
format := encodeOutputFormat(params.Format)
res, err := client.Publish(ctx, &PublishRequest{
Publisher: name,
Config: cfgEncoded,
Args: argsEncoded,
DataContext: datactx,
Format: format,
Publisher: name,
Config: cfgEncoded,
Args: argsEncoded,
DataContext: datactx,
Format: format,
DocumentName: params.DocumentName,
}, p.callOptions()...)

if diags.AppendErr(err, "Failed to publish") {
Expand Down
100 changes: 55 additions & 45 deletions plugin/pluginapi/v1/plugin.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

25 changes: 18 additions & 7 deletions plugin/pluginapi/v1/plugin_grpc.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 5 additions & 4 deletions plugin/pluginapi/v1/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,11 @@ func (srv *grpcServer) Publish(ctx context.Context, req *PublishRequest) (*Publi
datactx := decodeMapData(req.GetDataContext().GetValue())
format := decodeOutputFormat(req.GetFormat())
diags := srv.schema.Publish(ctx, publisher, &plugin.PublishParams{
Config: cfg,
Args: args,
DataContext: datactx,
Format: format,
Config: cfg,
Args: args,
DataContext: datactx,
Format: format,
DocumentName: req.GetDocumentName(),
})
return &PublishResponse{
Diagnostics: encodeDiagnosticList(diags),
Expand Down
9 changes: 5 additions & 4 deletions plugin/publisher.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,11 @@ func (f OutputFormat) Ext() string {
type PublishFunc func(ctx context.Context, params *PublishParams) diagnostics.Diag

type PublishParams struct {
Config cty.Value
Args cty.Value
DataContext MapData
Format OutputFormat
DocumentName string
Config cty.Value
Args cty.Value
DataContext MapData
Format OutputFormat
}

type Publisher struct {
Expand Down
Loading

0 comments on commit 22cba2a

Please sign in to comment.