openmeter / taxcode /service /organizationdefaulttaxcodes.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 7)
16cdcb7 verified
Raw
History Blame Contribute Delete
1.63 kB
package service
import (
"context"
"github.com/openmeterio/openmeter/openmeter/taxcode"
"github.com/openmeterio/openmeter/pkg/framework/transaction"
"github.com/openmeterio/openmeter/pkg/models"
)
func (s *Service) GetOrganizationDefaultTaxCodes(ctx context.Context, input taxcode.GetOrganizationDefaultTaxCodesInput) (taxcode.OrganizationDefaultTaxCodes, error) {
if err := input.Validate(); err != nil {
return taxcode.OrganizationDefaultTaxCodes{}, err
}
return transaction.Run(ctx, s.adapter, func(ctx context.Context) (taxcode.OrganizationDefaultTaxCodes, error) {
return s.adapter.GetOrganizationDefaultTaxCodes(ctx, input)
})
}
func (s *Service) UpsertOrganizationDefaultTaxCodes(ctx context.Context, input taxcode.UpsertOrganizationDefaultTaxCodesInput) (taxcode.OrganizationDefaultTaxCodes, error) {
if err := input.Validate(); err != nil {
return taxcode.OrganizationDefaultTaxCodes{}, err
}
return transaction.Run(ctx, s.adapter, func(ctx context.Context) (taxcode.OrganizationDefaultTaxCodes, error) {
// Ensure both tax code IDs belong to the namespace.
if _, err := s.GetTaxCode(ctx, taxcode.GetTaxCodeInput{
NamespacedID: models.NamespacedID{Namespace: input.Namespace, ID: input.InvoicingTaxCodeID},
}); err != nil {
return taxcode.OrganizationDefaultTaxCodes{}, err
}
if _, err := s.GetTaxCode(ctx, taxcode.GetTaxCodeInput{
NamespacedID: models.NamespacedID{Namespace: input.Namespace, ID: input.CreditGrantTaxCodeID},
}); err != nil {
return taxcode.OrganizationDefaultTaxCodes{}, err
}
return s.adapter.UpsertOrganizationDefaultTaxCodes(ctx, input)
})
}