All files / app/src/features/measure/lib transform-form-values-to-request.ts

7.14% Statements 2/28
100% Branches 0/0
0% Functions 0/1
7.14% Lines 2/28

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 331x         1x                                                      
import { MeasureFormValues } from '@/features/measure'
import { MeasurementUnit } from '@/entities/accounting-object'
import { LockPriceEnum } from '@/entities/pipe'
import { getIdFromIRI } from '@/shared/helpers'
 
export const transformMeasureFormValuesToRequest = (values: MeasureFormValues) => {
  const isTonOverride = values.priceTypeOverride === LockPriceEnum.TON
  const measureType = values.measureType
  return {
    ...(values.overrideMakeUpLengthLossNotation && {
      overrideMakeUpLengthLossNotation: values.overrideMakeUpLengthLossNotation,
    }),
    ...(values.overrideCurrency &&
      values?.priceOverride && {
        overrideCurrency: getIdFromIRI(values.overrideCurrency),
      }),
    ...(values?.overrideMakeUpLengthLoss && {
      overrideMakeUpLengthLoss: +values.overrideMakeUpLengthLoss,
    }),
    ...(isTonOverride && {
      overridePriceTon: +(values.priceOverride || 0),
      overridePriceLength: 0,
    }),
    ...(!isTonOverride && {
      overridePriceLength: +(values.priceOverride || 0),
      overridePriceTon: 0,
    }),
    ...(measureType === MeasurementUnit.LENGTH
      ? { requiredLength: +(values.requiredLength || 0) }
      : { requiredItemsCount: +(values.requiredItemsCount || 0) }),
  }
}