mirror of
https://github.com/iptv-org/database.git
synced 2025-05-09 19:20:01 -04:00
Update scripts
This commit is contained in:
parent
37b4197fb2
commit
6244ba7adb
54 changed files with 2020 additions and 1145 deletions
36
scripts/validators/subdivisionValidator.ts
Normal file
36
scripts/validators/subdivisionValidator.ts
Normal file
|
@ -0,0 +1,36 @@
|
|||
import { ValidatorProps } from '../types/validator'
|
||||
import { Collection } from '@freearhey/core'
|
||||
import { Validator } from './validator'
|
||||
import { Subdivision } from '../models'
|
||||
import { DataLoaderData } from '../types/dataLoader'
|
||||
|
||||
export class SubdivisionValidator extends Validator {
|
||||
constructor(props: ValidatorProps) {
|
||||
super(props)
|
||||
}
|
||||
|
||||
validate(subdivision: Subdivision): Collection {
|
||||
const { countriesKeyByCode }: DataLoaderData = this.data
|
||||
|
||||
let errors = new Collection()
|
||||
|
||||
const joiResults = subdivision.getSchema().validate(subdivision.data(), { abortEarly: false })
|
||||
if (joiResults.error) {
|
||||
joiResults.error.details.forEach((detail: { message: string }) => {
|
||||
errors.add({
|
||||
line: subdivision.getLine(),
|
||||
message: `${subdivision.code}: ${detail.message}`
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
if (!subdivision.hasValidCountryCode(countriesKeyByCode)) {
|
||||
errors.add({
|
||||
line: subdivision.getLine(),
|
||||
message: `"${subdivision.code}" has an invalid country "${subdivision.countryCode}"`
|
||||
})
|
||||
}
|
||||
|
||||
return errors
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue