Skip to content

Commit

Permalink
Merge pull request #142 from atomist-skills/expose-transactions-witho…
Browse files Browse the repository at this point in the history
…ut-request-context

expose transaction creation without request context
  • Loading branch information
chrispatrick authored Dec 2, 2024
2 parents 5a3fe1a + 02f32aa commit 318cc86
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
8 changes: 4 additions & 4 deletions transact.go
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ type messageSender struct {
TransactOrdered TransactOrdered
}

func createMessageSender(ctx context.Context, req RequestContext) messageSender {
func createMessageSender(ctx context.Context, event EventIncoming, logger Logger) messageSender {
messageSender := messageSender{}

messageSender.TransactOrdered = func(entities interface{}, orderingKey string) error {
Expand Down Expand Up @@ -219,13 +219,13 @@ func createMessageSender(ctx context.Context, req RequestContext) messageSender

client := http.DefaultClient

req.Log.Debugf("Transacting entities: %s", string(bs))
logger.Debugf("Transacting entities: %s", string(bs))

httpReq, err := http.NewRequestWithContext(ctx, http.MethodPost, req.Event.Urls.Transactions, bytes.NewBuffer(bs))
httpReq, err := http.NewRequestWithContext(ctx, http.MethodPost, event.Urls.Transactions, bytes.NewBuffer(bs))
if err != nil {
return err
}
httpReq.Header.Set("Authorization", "Bearer "+req.Event.Token)
httpReq.Header.Set("Authorization", "Bearer "+event.Token)
httpReq.Header.Set("Content-Type", "application/edn")
resp, err := client.Do(httpReq)
if err != nil {
Expand Down
14 changes: 9 additions & 5 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -128,22 +128,26 @@ type RequestContext struct {
}

func (r *RequestContext) NewTransaction() Transaction {
return NewTransactionFromRequest(r.ctx, r.Event, r.Log)
}

func NewTransactionFromRequest(ctx context.Context, event EventIncoming, logger Logger) Transaction {
var sender messageSender
if r.Event.Type != "" {
sender = createMessageSender(r.ctx, *r)
if event.Type != "" {
sender = createMessageSender(ctx, event, logger)
} else {
sender = createHttpMessageSender(r.Event.WorkspaceId, r.Event.Token, r.Event.ExecutionId, r.Log)
sender = createHttpMessageSender(event.WorkspaceId, event.Token, event.ExecutionId, logger)
}

transactor := func(entities []interface{}, ordered bool) error {
if ordered {
return sender.TransactOrdered(entities, r.Event.ExecutionId)
return sender.TransactOrdered(entities, event.ExecutionId)
}

return sender.Transact(entities)
}

return newTransaction(r.ctx, transactor)
return newTransaction(ctx, transactor)
}

type EventHandler func(ctx context.Context, req RequestContext) Status
Expand Down

0 comments on commit 318cc86

Please sign in to comment.