2021-10-08 13:23:40 +03:00
|
|
|
const ValueObject = require('./shared/ValueObject');
|
2021-10-08 13:31:11 +03:00
|
|
|
const InvalidOfferCurrency = require('../errors').InvalidOfferCurrency;
|
2021-10-07 18:33:26 +03:00
|
|
|
|
|
|
|
/** @extends ValueObject<string> */
|
|
|
|
class OfferCurrency extends ValueObject {
|
|
|
|
/** @param {unknown} currency */
|
|
|
|
static create(currency) {
|
|
|
|
if (typeof currency !== 'string') {
|
|
|
|
throw new InvalidOfferCurrency({
|
|
|
|
message: 'Offer `currency` must be a string.'
|
|
|
|
});
|
|
|
|
}
|
|
|
|
// TODO: Validate it is a country code we support?
|
|
|
|
return new OfferCurrency(currency);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
module.exports = OfferCurrency;
|