-
Notifications
You must be signed in to change notification settings - Fork 27
/
taxon.js
81 lines (80 loc) · 2.71 KB
/
taxon.js
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
const Joi = require( "@hapi/joi" );
const conservationStatus = require( "./conservation_status" );
const list = require( "./list" );
const photo = require( "./photo" );
const place = require( "./place" );
module.exports = Joi.object( ).keys( {
id: Joi.number( ).integer( )
.description( "Unique auto-increment integer identifier." )
.required( ),
ancestors: Joi.array( ).items(
Joi.object( ).meta( { className: "Taxon" } )
),
ancestor_ids: Joi.array( ).items(
Joi.number( ).integer( )
),
ancestry: Joi.string( ).valid( null ),
atlas_id: Joi.number( ).integer( ).valid( null ),
children: Joi.array( ).items(
Joi.object( ).meta( { className: "Taxon" } )
),
complete_rank: Joi.string( ),
complete_species_count: Joi.number( ).integer( ).valid( null ),
conservation_status: conservationStatus,
conservation_statuses: Joi.array( ).items(
conservationStatus
),
created_at: Joi.string( ),
current_synonymous_taxon_ids: Joi.array( ).items(
Joi.number( ).integer( )
).valid( null ),
default_photo: photo,
endemic: Joi.boolean( ),
extinct: Joi.boolean( ),
flag_counts: Joi.object( ).keys( {
resolved: Joi.number( ).integer( ),
unresolved: Joi.number( ).integer( )
} ).unknown( false ),
iconic_taxon_id: Joi.number( ).integer( ).valid( null ),
iconic_taxon_name: Joi.string( ),
introduced: Joi.boolean( ),
is_active: Joi.boolean( ),
listed_taxa: Joi.array( ).items(
Joi.object( ).keys( {
id: Joi.number( ).integer( ),
establishment_means: Joi.string( ),
list,
taxon: Joi.object( ).meta( { className: "Taxon" } ),
taxon_id: Joi.number( ).integer( ),
place
} ).unknown( false )
),
listed_taxa_count: Joi.number( ).integer( ),
matched_term: Joi.string( ),
min_species_ancestry: Joi.string( ),
min_species_taxon_id: Joi.number( ).integer( ),
name: Joi.string( ),
native: Joi.boolean( ),
observations_count: Joi.number( ).integer( ),
parent_id: Joi.number( ).integer( ).valid( null ),
preferred_common_name: Joi.string( ),
rank: Joi.string( ),
rank_level: Joi.number( ),
statuses: Joi.array( ).items(
Joi.any( ).description( "TODO: status can be strings or objects" )
),
taxon_changes_count: Joi.number( ).integer( ),
taxon_photos: Joi.array( ).items(
Joi.object( ).keys( {
taxon: Joi.object( ).meta( { className: "Taxon" } ),
taxon_id: Joi.number( ).integer( ),
photo
} ).unknown( false )
),
taxon_schemes_count: Joi.number( ).integer( ),
threatened: Joi.boolean( ),
universal_search_rank: Joi.number( ).integer( ),
wikipedia_summary: Joi.string( ).valid( null ),
wikipedia_url: Joi.string( ).valid( null )
} ).unknown( false ).meta( { className: "Taxon" } )
.valid( null );