MCPcopy Index your code
hub / github.com/NdoleStudio/httpsms / Store

Method Store

api/pkg/services/webhook_service.go:120–144  ·  view source on GitHub ↗

Store a new entities.Webhook

(ctx context.Context, params *WebhookStoreParams)

Source from the content-addressed store, hash-verified

118
119// Store a new entities.Webhook
120func (service *WebhookService) Store(ctx context.Context, params *WebhookStoreParams) (*entities.Webhook, error) {
121 ctx, span := service.tracer.Start(ctx)
122 defer span.End()
123
124 ctxLogger := service.tracer.CtxLogger(service.logger, span)
125
126 webhook := &entities.Webhook{
127 ID: uuid.New(),
128 UserID: params.UserID,
129 URL: params.URL,
130 PhoneNumbers: params.PhoneNumbers,
131 SigningKey: params.SigningKey,
132 Events: params.Events,
133 CreatedAt: time.Now().UTC(),
134 UpdatedAt: time.Now().UTC(),
135 }
136
137 if err := service.repository.Save(ctx, webhook); err != nil {
138 msg := fmt.Sprintf("cannot save webhook with id [%s]", webhook.ID)
139 return nil, service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
140 }
141
142 ctxLogger.Info(fmt.Sprintf("webhook saved with id [%s] for user [%s] in the [%T]", webhook.ID, webhook.UserID, service.repository))
143 return webhook, nil
144}
145
146// WebhookUpdateParams are parameters for updating an entities.Webhook
147type WebhookUpdateParams struct {

Callers

nothing calls this directly

Calls 5

StartMethod · 0.65
CtxLoggerMethod · 0.65
SaveMethod · 0.65
WrapErrorSpanMethod · 0.65
InfoMethod · 0.65

Tested by

no test coverage detected