拆分系统配置 Service 文件职责
This commit is contained in:
@@ -0,0 +1,126 @@
|
||||
package systemconfig
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
func (s *Service) PublishOptions(ctx context.Context) (*PublishOptionsDTO, error) {
|
||||
if s.repo == nil {
|
||||
return nil, ErrDependencyUnavailable
|
||||
}
|
||||
options, err := s.publishOptions(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &options, nil
|
||||
}
|
||||
|
||||
func (s *Service) SalePriceConfig(ctx context.Context) (*PublishSalePriceConfig, error) {
|
||||
if s.repo == nil {
|
||||
return nil, ErrDependencyUnavailable
|
||||
}
|
||||
config, err := s.salePriceConfig(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &config, nil
|
||||
}
|
||||
|
||||
func (s *Service) OrderAgreements(ctx context.Context) (*OrderAgreementsDTO, error) {
|
||||
if s.repo == nil {
|
||||
return nil, ErrDependencyUnavailable
|
||||
}
|
||||
agreements, err := s.orderAgreements(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &agreements, nil
|
||||
}
|
||||
|
||||
func (s *Service) ListingPublishAgreements(ctx context.Context) (*ListingPublishAgreementsDTO, error) {
|
||||
if s.repo == nil {
|
||||
return nil, ErrDependencyUnavailable
|
||||
}
|
||||
agreements, err := s.listingPublishAgreements(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &agreements, nil
|
||||
}
|
||||
|
||||
func (s *Service) PostRentalNotice(ctx context.Context) (*PostRentalNoticeDTO, error) {
|
||||
if s.repo == nil {
|
||||
return nil, ErrDependencyUnavailable
|
||||
}
|
||||
notice, err := s.postRentalNotice(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ¬ice, nil
|
||||
}
|
||||
|
||||
func (s *Service) publishOptions(ctx context.Context) (PublishOptionsDTO, error) {
|
||||
value, err := s.repo.FindValue(ctx, publishOptionsConfigKey)
|
||||
if err != nil {
|
||||
return PublishOptionsDTO{}, err
|
||||
}
|
||||
options := DefaultPublishOptions()
|
||||
if err := json.Unmarshal([]byte(value), &options); err != nil {
|
||||
options = DefaultPublishOptions()
|
||||
}
|
||||
normalizePublishOptions(&options)
|
||||
return options, nil
|
||||
}
|
||||
|
||||
func (s *Service) salePriceConfig(ctx context.Context) (PublishSalePriceConfig, error) {
|
||||
value, err := s.repo.FindValue(ctx, salePriceConfigKey)
|
||||
if err != nil {
|
||||
return PublishSalePriceConfig{}, err
|
||||
}
|
||||
config := DefaultSalePriceConfig()
|
||||
if err := json.Unmarshal([]byte(value), &config); err != nil {
|
||||
config = DefaultSalePriceConfig()
|
||||
}
|
||||
normalizeSalePriceConfig(&config)
|
||||
return config, nil
|
||||
}
|
||||
|
||||
func (s *Service) orderAgreements(ctx context.Context) (OrderAgreementsDTO, error) {
|
||||
value, err := s.repo.FindValue(ctx, orderAgreementsConfigKey)
|
||||
if err != nil {
|
||||
return OrderAgreementsDTO{}, err
|
||||
}
|
||||
agreements := DefaultOrderAgreements()
|
||||
if err := json.Unmarshal([]byte(value), &agreements); err != nil {
|
||||
agreements = DefaultOrderAgreements()
|
||||
}
|
||||
normalizeOrderAgreements(&agreements)
|
||||
return agreements, nil
|
||||
}
|
||||
|
||||
func (s *Service) listingPublishAgreements(ctx context.Context) (ListingPublishAgreementsDTO, error) {
|
||||
value, err := s.repo.FindValue(ctx, listingPublishAgreementsConfigKey)
|
||||
if err != nil {
|
||||
return ListingPublishAgreementsDTO{}, err
|
||||
}
|
||||
agreements := DefaultListingPublishAgreements()
|
||||
if err := json.Unmarshal([]byte(value), &agreements); err != nil {
|
||||
agreements = DefaultListingPublishAgreements()
|
||||
}
|
||||
normalizeListingPublishAgreements(&agreements)
|
||||
return agreements, nil
|
||||
}
|
||||
|
||||
func (s *Service) postRentalNotice(ctx context.Context) (PostRentalNoticeDTO, error) {
|
||||
value, err := s.repo.FindValue(ctx, postRentalNoticeConfigKey)
|
||||
if err != nil {
|
||||
return PostRentalNoticeDTO{}, err
|
||||
}
|
||||
notice := DefaultPostRentalNotice()
|
||||
if err := json.Unmarshal([]byte(value), ¬ice); err != nil {
|
||||
notice = DefaultPostRentalNotice()
|
||||
}
|
||||
normalizePostRentalNotice(¬ice)
|
||||
return notice, nil
|
||||
}
|
||||
Reference in New Issue
Block a user