const refund = Effect.serviceWith(Ship, Ship =>
(item: PickItem) =>
Do($ => {
const it = $(
(item.isLabelCreated() || item.isPrinted()
? Maybe.some(item)
: Maybe.none)
.encaseInEffect(() => new InvalidStateError("Item cannot be refunded"))
)
$(Ship.refund(it.state.transactionId))
return it.props.state.set(new Refunded({}))
}))
const refund = Effect.serviceWith(Ship, Ship =>
(item: PickItem) =>
Do($ => {
const it = $(
(item.isLabelCreated() || item.isPrinted()
? Maybe.some(item)
: Maybe.none)
.encaseInEffect(() => new InvalidStateError("Item cannot be refunded"))
)
$(Ship.refund(it.state.transactionId))
return it.props.state.set(new Refunded({}))
}))