MCPcopy Create free account
hub / github.com/bytebase/bytebase / buildPayloadFromMetadata

Function buildPayloadFromMetadata

backend/api/stripe/webhook.go:382–406  ·  view source on GitHub ↗

buildPayloadFromMetadata constructs a SubscriptionPayload from Stripe metadata. Returns error if any required field is missing or invalid.

(metadata map[string]string)

Source from the content-addressed store, hash-verified

380// buildPayloadFromMetadata constructs a SubscriptionPayload from Stripe metadata.
381// Returns error if any required field is missing or invalid.
382func buildPayloadFromMetadata(metadata map[string]string) (*storepb.SubscriptionPayload, error) {
383 plan, err := parsePlan(metadata["plan"])
384 if err != nil {
385 return nil, errors.Wrap(err, "metadata missing valid plan")
386 }
387 interval, err := parseInterval(metadata["interval"])
388 if err != nil {
389 return nil, errors.Wrap(err, "metadata missing valid interval")
390 }
391 instanceCount, err := strconv.Atoi(metadata["instance_count"])
392 if err != nil {
393 return nil, errors.Wrapf(err, "metadata missing valid instance_count %q", metadata["instance_count"])
394 }
395 userCount, err := strconv.Atoi(metadata["user_count"])
396 if err != nil {
397 return nil, errors.Wrapf(err, "metadata missing valid user_count %q", metadata["user_count"])
398 }
399
400 return &storepb.SubscriptionPayload{
401 Plan: plan,
402 Interval: interval,
403 InstanceCount: int32(instanceCount),
404 Seat: int32(userCount),
405 }, nil
406}
407
408func mapStripeStatus(status stripego.SubscriptionStatus) (storepb.SubscriptionPayload_Status, error) {
409 switch status {

Callers 2

handleInvoicePaidMethod · 0.85

Calls 2

parsePlanFunction · 0.85
parseIntervalFunction · 0.85

Tested by

no test coverage detected