Merge pull request 'feat(sake): added yeast and koji validations' (#46) from sake-validation into staging
Reviewed-on: #46
This commit is contained in:
commit
079b5958ef
@ -6,7 +6,9 @@ import {
|
||||
SakeCharacteristics,
|
||||
StandardDrinks,
|
||||
SakeVolume,
|
||||
RiceVarietal
|
||||
RiceVarietal,
|
||||
SakeYeastStrain,
|
||||
SakeKoji
|
||||
} from '../types'
|
||||
import { Alpha2Code } from 'i18n-iso-countries'
|
||||
import { CurrencyCode } from 'currency-codes-ts/dist/types'
|
||||
@ -24,14 +26,12 @@ export class Sake {
|
||||
public polishRate: number, // %
|
||||
public characteristics: SakeCharacteristics[],
|
||||
public starter: SakeStarter, // sake starter
|
||||
// FIXME
|
||||
public yeastStrain: number,
|
||||
public yeastStrain: SakeYeastStrain,
|
||||
public volume: SakeVolume, // bottle volume
|
||||
public alcohol: number, // alcohol percentage
|
||||
public standardDrinks: StandardDrinks, // number representing an amount of standard drinks per bottle per 100ml
|
||||
public riceVarietal: RiceVarietal[], // if more than one, list as 'blend'
|
||||
// FIXME: Andrew will provide
|
||||
public koji: string, // if more than one, list as 'blend'
|
||||
public koji: SakeKoji, // if more than one, list as 'blend'
|
||||
public vintage: number | VintageOptions, // year, nv (non-vintage) or mv (multi-vintage)
|
||||
public RRPamount: number, // 20
|
||||
public RRPcurrency: CurrencyCode, // USD
|
||||
|
@ -26,6 +26,56 @@ export enum SakeStarter {
|
||||
Yamahai = 'Yamahai'
|
||||
}
|
||||
|
||||
export enum SakeYeastStrain {
|
||||
KyokaiNo6 = 'Kyokai No. 6',
|
||||
KyokaiNo7 = 'Kyokai No. 7',
|
||||
KyokaiNo9 = 'Kyokai No. 9',
|
||||
Sake101 = 'Sake 101',
|
||||
Sake301 = 'Sake 301',
|
||||
AK1 = 'AK-1',
|
||||
K61 = 'K6-1',
|
||||
K91 = 'K9-1',
|
||||
KA11 = 'KA-11',
|
||||
ShinseiYeast = 'Shinsei Yeast',
|
||||
HokkaidoYeast = 'Hokkaido Yeast',
|
||||
TohokuYeast = 'Tohoku Yeast',
|
||||
KansaiYeast = 'Kansai Yeast',
|
||||
ChugokuYeast = 'Chugoku Yeast',
|
||||
ShikokuYeast = 'Shikoku Yeast',
|
||||
KyushuYeast = 'Kyushu Yeast',
|
||||
GinjoYeast = 'Ginjo Yeast',
|
||||
DaiginjoYeast = 'Daiginjo Yeast',
|
||||
JunmaiYeast = 'Junmai Yeast',
|
||||
KimotoYeast = 'Kimoto Yeast',
|
||||
YamahaiYeast = 'Yamahai Yeast'
|
||||
}
|
||||
|
||||
export enum SakeKoji {
|
||||
AkitaKoji = 'Akita Koji',
|
||||
HiguchiKoji = 'Higuchi Koji',
|
||||
HiroshimaKoji = 'Hiroshima Koji',
|
||||
KiKoji = 'Ki Koji',
|
||||
KumamotoKoji = 'Kumamoto Koji',
|
||||
KyokaiKoji = 'Kyokai Koji',
|
||||
NaganoKoji = 'Nagano Koji',
|
||||
NishikiKoji = 'Nishiki Koji',
|
||||
ShinmeiKoji = 'Shinmei Koji',
|
||||
TakahashiKoji = 'Takahashi Koji',
|
||||
AssociationNo6 = 'Association No. 6',
|
||||
AssociationNo9 = 'Association No. 9',
|
||||
AssociationNo10 = 'Association No. 10',
|
||||
KA1 = 'KA-1',
|
||||
KA4 = 'KA-4',
|
||||
K7 = 'K7',
|
||||
ShinseiKoji = 'Shinsei Koji',
|
||||
HokkaidoKoji = 'Hokkaido Koji',
|
||||
TohokuKoji = 'Tohoku Koji',
|
||||
KansaiKoji = 'Kansai Koji',
|
||||
ChugokuKoji = 'Chugoku Koji',
|
||||
ShikokuKoji = 'Shikoku Koji',
|
||||
KyushuKoji = 'Kyushu Koji'
|
||||
}
|
||||
|
||||
export interface SakePolishMin {
|
||||
min: number
|
||||
}
|
||||
|
@ -5,7 +5,9 @@ import {
|
||||
SakeVolume,
|
||||
SakeStarter,
|
||||
RiceVarietal,
|
||||
SakePolishMin
|
||||
SakePolishMin,
|
||||
SakeYeastStrain,
|
||||
SakeKoji
|
||||
} from '../../types'
|
||||
import {
|
||||
vintageValidation,
|
||||
@ -119,12 +121,17 @@ export const sakeValidation = (data: unknown): Joi.ValidationResult =>
|
||||
.items(Joi.string().valid(...Object.values(SakeCharacteristics)))
|
||||
.required(),
|
||||
starter: Joi.string().valid(...Object.values(SakeStarter)),
|
||||
yeastStrain: Joi.number().required(),
|
||||
yeastStrain: Joi.string()
|
||||
.valid(...Object.values(SakeYeastStrain))
|
||||
.required(),
|
||||
volume: volumeValidation(SakeVolume),
|
||||
alcohol: alcoholValidation,
|
||||
riceVarietal: Joi.array()
|
||||
.items(Joi.string().valid(...Object.values(RiceVarietal)))
|
||||
.required(),
|
||||
koji: Joi.string()
|
||||
.valid(...Object.values(SakeKoji))
|
||||
.required(),
|
||||
vintage: vintageValidation,
|
||||
RRPamount: RRPamountValidation,
|
||||
RRPcurrency: RRPcurrencyValidation,
|
||||
|
Loading…
x
Reference in New Issue
Block a user