@@ -57,34 +57,54 @@ export function register(server) {
57
57
} ) ;
58
58
59
59
server . get ( '/api/v1/crates/:crate_id/versions' , ( schema , request ) => {
60
- let crate = request . params . crate_id ;
61
- return schema . versions . where ( { crate } ) . sort ( ( a , b ) => compareIsoDates ( b . created_at , a . created_at ) ) ;
60
+ let crateId = request . params . crate_id ;
61
+ let crate = schema . crates . find ( crateId ) ;
62
+ if ( ! crate ) return notFound ( ) ;
63
+
64
+ return schema . versions . where ( { crate : crateId } ) . sort ( ( a , b ) => compareIsoDates ( b . created_at , a . created_at ) ) ;
62
65
} ) ;
63
66
64
67
server . get ( '/api/v1/crates/:crate_id/:version_num/authors' , ( schema , request ) => {
65
- let crate = request . params . crate_id ;
68
+ let crateId = request . params . crate_id ;
69
+ let crate = schema . crates . find ( crateId ) ;
70
+ if ( ! crate ) return notFound ( ) ;
71
+
66
72
let num = request . params . version_num ;
67
- let version = schema . versions . findBy ( { crate, num } ) ;
73
+ let version = schema . versions . findBy ( { crate : crateId , num } ) ;
74
+ if ( ! version ) return { errors : [ { detail : `crate \`${ crateId } \` does not have a version \`${ num } \`` } ] } ;
75
+
68
76
return { meta : { names : version . _authors } , users : [ ] } ;
69
77
} ) ;
70
78
71
79
server . get ( '/api/v1/crates/:crate_id/:version_num/dependencies' , ( schema , request ) => {
72
- let crate = request . params . crate_id ;
80
+ let crateId = request . params . crate_id ;
81
+ let crate = schema . crates . find ( crateId ) ;
82
+ if ( ! crate ) return notFound ( ) ;
83
+
73
84
let num = request . params . version_num ;
74
- let version_id = schema . versions . findBy ( { crate, num } ) . id ;
75
- return schema . dependencies . where ( { version_id } ) ;
85
+ let version = schema . versions . findBy ( { crate : crateId , num } ) ;
86
+ if ( ! version ) return { errors : [ { detail : `crate \`${ crateId } \` does not have a version \`${ num } \`` } ] } ;
87
+
88
+ return schema . dependencies . where ( { version_id : version . id } ) ;
76
89
} ) ;
77
90
78
91
server . get ( '/api/v1/crates/:crate_id/:version_num/downloads' , function ( schema , request ) {
79
92
let crateId = request . params . crate_id ;
93
+ let crate = schema . crates . find ( crateId ) ;
94
+ if ( ! crate ) return notFound ( ) ;
95
+
80
96
let versionNum = request . params . version_num ;
81
- let versionId = schema . versions . findBy ( { crate : crateId , num : versionNum } ) . id ;
82
- return schema . versionDownloads . where ( { version : versionId } ) ;
97
+ let version = schema . versions . findBy ( { crate : crateId , num : versionNum } ) ;
98
+ if ( ! version ) return { errors : [ { detail : `crate \`${ crateId } \` does not have a version \`${ versionNum } \`` } ] } ;
99
+
100
+ return schema . versionDownloads . where ( { version : version . id } ) ;
83
101
} ) ;
84
102
85
103
server . get ( '/api/v1/crates/:crate_id/owner_user' , function ( schema , request ) {
86
104
let crateId = request . params . crate_id ;
87
105
let crate = schema . crates . find ( crateId ) ;
106
+ if ( ! crate ) return notFound ( ) ;
107
+
88
108
let users = schema . users . find ( crate . _owner_users ) ;
89
109
90
110
let response = this . serialize ( users ) ;
@@ -99,6 +119,8 @@ export function register(server) {
99
119
server . get ( '/api/v1/crates/:crate_id/owner_team' , function ( schema , request ) {
100
120
let crateId = request . params . crate_id ;
101
121
let crate = schema . crates . find ( crateId ) ;
122
+ if ( ! crate ) return notFound ( ) ;
123
+
102
124
let teams = schema . teams . find ( crate . _owner_teams ) ;
103
125
104
126
let response = this . serialize ( teams ) ;
@@ -111,10 +133,13 @@ export function register(server) {
111
133
} ) ;
112
134
113
135
server . get ( '/api/v1/crates/:crate_id/reverse_dependencies' , function ( schema , request ) {
136
+ let crateId = request . params . crate_id ;
137
+ let crate = schema . crates . find ( crateId ) ;
138
+ if ( ! crate ) return notFound ( ) ;
139
+
114
140
let { start, end } = pageParams ( request ) ;
115
141
116
- let crate = request . params . crate_id ;
117
- let allDependencies = schema . dependencies . where ( { crate_id : crate } ) ;
142
+ let allDependencies = schema . dependencies . where ( { crate_id : crateId } ) ;
118
143
let dependencies = allDependencies . slice ( start , end ) ;
119
144
let total = allDependencies . length ;
120
145
@@ -130,6 +155,8 @@ export function register(server) {
130
155
server . get ( '/api/v1/crates/:crate_id/downloads' , function ( schema , request ) {
131
156
let crateId = request . params . crate_id ;
132
157
let crate = schema . crates . find ( crateId ) ;
158
+ if ( ! crate ) return notFound ( ) ;
159
+
133
160
let versionDownloads = schema . versionDownloads
134
161
. all ( )
135
162
. filter ( it => crate . versions . indexOf ( parseInt ( it . version , 10 ) ) !== - 1 ) ;
0 commit comments