quotation service fixed
This commit is contained in:
@@ -123,6 +123,7 @@ func (p *PlanTemplates) GetByID(ctx context.Context, id bson.ObjectID) (*model.P
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
entity.Normalize()
|
||||
return entity, nil
|
||||
}
|
||||
|
||||
@@ -133,11 +134,15 @@ func (p *PlanTemplates) List(ctx context.Context, filter *model.PaymentPlanTempl
|
||||
|
||||
query := repository.Query()
|
||||
|
||||
if from := strings.ToUpper(strings.TrimSpace(string(filter.FromRail))); from != "" {
|
||||
query = query.Filter(repository.Field("fromRail"), from)
|
||||
if from := normalizedRailFilterValues(filter.FromRail); len(from) == 1 {
|
||||
query = query.Filter(repository.Field("fromRail"), from[0])
|
||||
} else if len(from) > 1 {
|
||||
query = query.In(repository.Field("fromRail"), stringSliceToAny(from)...)
|
||||
}
|
||||
if to := strings.ToUpper(strings.TrimSpace(string(filter.ToRail))); to != "" {
|
||||
query = query.Filter(repository.Field("toRail"), to)
|
||||
if to := normalizedRailFilterValues(filter.ToRail); len(to) == 1 {
|
||||
query = query.Filter(repository.Field("toRail"), to[0])
|
||||
} else if len(to) > 1 {
|
||||
query = query.In(repository.Field("toRail"), stringSliceToAny(to)...)
|
||||
}
|
||||
if network := strings.ToUpper(strings.TrimSpace(filter.Network)); network != "" {
|
||||
query = query.Filter(repository.Field("network"), network)
|
||||
@@ -152,6 +157,7 @@ func (p *PlanTemplates) List(ctx context.Context, filter *model.PaymentPlanTempl
|
||||
if err := cur.Decode(item); err != nil {
|
||||
return err
|
||||
}
|
||||
item.Normalize()
|
||||
templates = append(templates, item)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -120,6 +120,7 @@ func (r *Routes) GetByID(ctx context.Context, id bson.ObjectID) (*model.PaymentR
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
entity.Normalize()
|
||||
return entity, nil
|
||||
}
|
||||
|
||||
@@ -130,11 +131,15 @@ func (r *Routes) List(ctx context.Context, filter *model.PaymentRouteFilter) (*m
|
||||
|
||||
query := repository.Query()
|
||||
|
||||
if from := strings.ToUpper(strings.TrimSpace(string(filter.FromRail))); from != "" {
|
||||
query = query.Filter(repository.Field("fromRail"), from)
|
||||
if from := normalizedRailFilterValues(filter.FromRail); len(from) == 1 {
|
||||
query = query.Filter(repository.Field("fromRail"), from[0])
|
||||
} else if len(from) > 1 {
|
||||
query = query.In(repository.Field("fromRail"), stringSliceToAny(from)...)
|
||||
}
|
||||
if to := strings.ToUpper(strings.TrimSpace(string(filter.ToRail))); to != "" {
|
||||
query = query.Filter(repository.Field("toRail"), to)
|
||||
if to := normalizedRailFilterValues(filter.ToRail); len(to) == 1 {
|
||||
query = query.Filter(repository.Field("toRail"), to[0])
|
||||
} else if len(to) > 1 {
|
||||
query = query.In(repository.Field("toRail"), stringSliceToAny(to)...)
|
||||
}
|
||||
if network := strings.ToUpper(strings.TrimSpace(filter.Network)); network != "" {
|
||||
query = query.Filter(repository.Field("network"), network)
|
||||
@@ -149,6 +154,7 @@ func (r *Routes) List(ctx context.Context, filter *model.PaymentRouteFilter) (*m
|
||||
if err := cur.Decode(item); err != nil {
|
||||
return err
|
||||
}
|
||||
item.Normalize()
|
||||
routes = append(routes, item)
|
||||
return nil
|
||||
}
|
||||
@@ -163,3 +169,38 @@ func (r *Routes) List(ctx context.Context, filter *model.PaymentRouteFilter) (*m
|
||||
}
|
||||
|
||||
var _ storage.RoutesStore = (*Routes)(nil)
|
||||
|
||||
func normalizedRailFilterValues(rail model.Rail) []string {
|
||||
clean := strings.ToUpper(strings.TrimSpace(string(rail)))
|
||||
if clean == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
if parsed := model.ParseRail(string(rail)); parsed != model.RailUnspecified {
|
||||
switch parsed {
|
||||
case model.RailCrypto:
|
||||
return []string{string(model.RailCrypto), "RAIL_CRYPTO"}
|
||||
case model.RailProviderSettlement:
|
||||
return []string{string(model.RailProviderSettlement), "PROVIDER_SETTLEMENT", "RAIL_SETTLEMENT", "RAIL_PROVIDER_SETTLEMENT"}
|
||||
case model.RailLedger:
|
||||
return []string{string(model.RailLedger), "RAIL_LEDGER"}
|
||||
case model.RailCardPayout:
|
||||
return []string{string(model.RailCardPayout), "CARD_PAYOUT", "RAIL_CARD", "RAIL_CARD_PAYOUT"}
|
||||
case model.RailFiatOnRamp:
|
||||
return []string{string(model.RailFiatOnRamp), "FIAT_ONRAMP", "RAIL_ONRAMP", "RAIL_FIAT_ONRAMP"}
|
||||
case model.RailFiatOffRamp:
|
||||
return []string{string(model.RailFiatOffRamp), "FIAT_OFFRAMP", "RAIL_OFFRAMP", "RAIL_FIAT_OFFRAMP"}
|
||||
default:
|
||||
return []string{string(parsed)}
|
||||
}
|
||||
}
|
||||
return []string{clean}
|
||||
}
|
||||
|
||||
func stringSliceToAny(values []string) []any {
|
||||
out := make([]any, 0, len(values))
|
||||
for _, value := range values {
|
||||
out = append(out, value)
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user