|
|
@@ -18,6 +18,10 @@ type ListBillingHandler struct {
|
|
|
handlers.PorterHandlerWriter
|
|
|
}
|
|
|
|
|
|
+type CheckPaymentEnabledHandler struct {
|
|
|
+ handlers.PorterHandlerWriter
|
|
|
+}
|
|
|
+
|
|
|
// NewListBillingHandler will create a new ListBillingHandler
|
|
|
func NewListBillingHandler(
|
|
|
config *config.Config,
|
|
|
@@ -29,7 +33,7 @@ func NewListBillingHandler(
|
|
|
}
|
|
|
|
|
|
func (c *ListBillingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
- ctx, span := telemetry.NewSpan(r.Context(), "auth-endpoint-api-token")
|
|
|
+ ctx, span := telemetry.NewSpan(r.Context(), "list-payment-endpoint")
|
|
|
defer span.End()
|
|
|
|
|
|
proj, _ := ctx.Value(types.ProjectScope).(*models.Project)
|
|
|
@@ -43,3 +47,29 @@ func (c *ListBillingHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
|
c.WriteResult(w, r, paymentMethods)
|
|
|
}
|
|
|
+
|
|
|
+// NewCheckPaymentEnabledHandler will create a new CheckPaymentEnabledHandler
|
|
|
+func NewCheckPaymentEnabledHandler(
|
|
|
+ config *config.Config,
|
|
|
+ writer shared.ResultWriter,
|
|
|
+) *CheckPaymentEnabledHandler {
|
|
|
+ return &CheckPaymentEnabledHandler{
|
|
|
+ PorterHandlerWriter: handlers.NewDefaultPorterHandler(config, nil, writer),
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func (c *CheckPaymentEnabledHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
+ ctx, span := telemetry.NewSpan(r.Context(), "check-payment-endpoint")
|
|
|
+ defer span.End()
|
|
|
+
|
|
|
+ proj, _ := ctx.Value(types.ProjectScope).(*models.Project)
|
|
|
+
|
|
|
+ paymentEnabled, err := c.Config().BillingManager.CheckPaymentEnabled(proj)
|
|
|
+ if err != nil {
|
|
|
+ err := telemetry.Error(ctx, span, err, "error checking if payment enabled")
|
|
|
+ c.HandleAPIError(w, r, apierrors.NewErrInternal(fmt.Errorf("error checking if payment enabled: %w", err)))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ c.WriteResult(w, r, paymentEnabled)
|
|
|
+}
|