@@ -45,19 +45,19 @@ pub struct EncodableCategoryWithSubcategories {
45
45
impl Category {
46
46
pub fn find_by_category ( conn : & GenericConnection , name : & str )
47
47
-> CargoResult < Category > {
48
- let stmt = try! ( conn. prepare ( "SELECT * FROM categories \
49
- WHERE category = $1") ) ;
50
- let rows = try! ( stmt. query ( & [ & name] ) ) ;
48
+ let stmt = conn. prepare ( "SELECT * FROM categories \
49
+ WHERE category = $1") ? ;
50
+ let rows = stmt. query ( & [ & name] ) ? ;
51
51
rows. iter ( ) . next ( )
52
52
. chain_error ( || NotFound )
53
53
. map ( |row| Model :: from_row ( & row) )
54
54
}
55
55
56
56
pub fn find_by_slug ( conn : & GenericConnection , slug : & str )
57
57
-> CargoResult < Category > {
58
- let stmt = try! ( conn. prepare ( "SELECT * FROM categories \
59
- WHERE slug = LOWER($1)") ) ;
60
- let rows = try! ( stmt. query ( & [ & slug] ) ) ;
58
+ let stmt = conn. prepare ( "SELECT * FROM categories \
59
+ WHERE slug = LOWER($1)") ? ;
60
+ let rows = stmt. query ( & [ & slug] ) ? ;
61
61
rows. iter ( ) . next ( )
62
62
. chain_error ( || NotFound )
63
63
. map ( |row| Model :: from_row ( & row) )
@@ -80,7 +80,7 @@ impl Category {
80
80
pub fn update_crate ( conn : & GenericConnection ,
81
81
krate : & Crate ,
82
82
categories : & [ String ] ) -> CargoResult < Vec < String > > {
83
- let old_categories = try! ( krate. categories ( conn) ) ;
83
+ let old_categories = krate. categories ( conn) ? ;
84
84
let old_categories_ids: HashSet < _ > = old_categories. iter ( ) . map ( |cat| {
85
85
cat. id
86
86
} ) . collect ( ) ;
@@ -112,21 +112,21 @@ impl Category {
112
112
. collect ( ) ;
113
113
114
114
if !to_rm. is_empty ( ) {
115
- try! ( conn. execute ( "DELETE FROM crates_categories \
115
+ conn. execute ( "DELETE FROM crates_categories \
116
116
WHERE category_id = ANY($1) \
117
117
AND crate_id = $2",
118
- & [ & to_rm, & krate. id ] ) ) ;
118
+ & [ & to_rm, & krate. id ] ) ? ;
119
119
}
120
120
121
121
if !to_add. is_empty ( ) {
122
122
let insert: Vec < _ > = to_add. into_iter ( ) . map ( |id| {
123
123
format ! ( "({}, {})" , krate. id, id)
124
124
} ) . collect ( ) ;
125
125
let insert = insert. join ( ", " ) ;
126
- try! ( conn. execute ( & format ! ( "INSERT INTO crates_categories \
126
+ conn. execute ( & format ! ( "INSERT INTO crates_categories \
127
127
(crate_id, category_id) VALUES {}",
128
- insert) ,
129
- & [ ] ) ) ;
128
+ insert) ,
129
+ & [ ] ) ? ;
130
130
}
131
131
132
132
Ok ( invalid_categories)
@@ -139,8 +139,8 @@ impl Category {
139
139
WHERE category NOT LIKE '%::%'",
140
140
Model :: table_name( None :: <Self >
141
141
) ) ;
142
- let stmt = try! ( conn. prepare ( & sql) ) ;
143
- let rows = try! ( stmt. query ( & [ ] ) ) ;
142
+ let stmt = conn. prepare ( & sql) ? ;
143
+ let rows = stmt. query ( & [ ] ) ? ;
144
144
Ok ( rows. iter ( ) . next ( ) . unwrap ( ) . get ( "count" ) )
145
145
}
146
146
@@ -156,7 +156,7 @@ impl Category {
156
156
157
157
// Collect all the top-level categories and sum up the crates_cnt of
158
158
// the crates in all subcategories
159
- let stmt = try! ( conn. prepare ( & format ! (
159
+ let stmt = conn. prepare ( & format ! (
160
160
"SELECT c.id, c.category, c.slug, c.description, c.created_at, \
161
161
COALESCE (( \
162
162
SELECT sum(c2.crates_cnt)::int \
@@ -167,10 +167,10 @@ impl Category {
167
167
FROM categories as c \
168
168
WHERE c.category NOT LIKE '%::%' {} \
169
169
LIMIT $1 OFFSET $2",
170
- sort_sql
171
- ) ) ) ;
170
+ sort_sql
171
+ ) ) ? ;
172
172
173
- let categories: Vec < _ > = try! ( stmt. query ( & [ & limit, & offset] ) )
173
+ let categories: Vec < _ > = stmt. query ( & [ & limit, & offset] ) ?
174
174
. iter ( )
175
175
. map ( |row| Model :: from_row ( & row) )
176
176
. collect ( ) ;
@@ -180,7 +180,7 @@ impl Category {
180
180
181
181
pub fn subcategories ( & self , conn : & GenericConnection )
182
182
-> CargoResult < Vec < Category > > {
183
- let stmt = try! ( conn. prepare ( "\
183
+ let stmt = conn. prepare ( "\
184
184
SELECT c.id, c.category, c.slug, c.description, c.created_at, \
185
185
COALESCE (( \
186
186
SELECT sum(c2.crates_cnt)::int \
@@ -190,9 +190,9 @@ impl Category {
190
190
), 0) as crates_cnt \
191
191
FROM categories as c \
192
192
WHERE c.category ILIKE $1 || '::%' \
193
- AND c.category NOT ILIKE $1 || '::%::%'") ) ;
193
+ AND c.category NOT ILIKE $1 || '::%::%'") ? ;
194
194
195
- let rows = try! ( stmt. query ( & [ & self . category ] ) ) ;
195
+ let rows = stmt. query ( & [ & self . category ] ) ? ;
196
196
Ok ( rows. iter ( ) . map ( |r| Model :: from_row ( & r) ) . collect ( ) )
197
197
}
198
198
}
@@ -213,16 +213,16 @@ impl Model for Category {
213
213
214
214
/// Handles the `GET /categories` route.
215
215
pub fn index ( req : & mut Request ) -> CargoResult < Response > {
216
- let conn = try! ( req. tx ( ) ) ;
217
- let ( offset, limit) = try! ( req. pagination ( 10 , 100 ) ) ;
216
+ let conn = req. tx ( ) ? ;
217
+ let ( offset, limit) = req. pagination ( 10 , 100 ) ? ;
218
218
let query = req. query ( ) ;
219
219
let sort = query. get ( "sort" ) . map_or ( "alpha" , String :: as_str) ;
220
220
221
- let categories = try! ( Category :: toplevel ( conn, sort, limit, offset) ) ;
221
+ let categories = Category :: toplevel ( conn, sort, limit, offset) ? ;
222
222
let categories = categories. into_iter ( ) . map ( Category :: encodable) . collect ( ) ;
223
223
224
224
// Query for the total count of categories
225
- let total = try! ( Category :: count_toplevel ( conn) ) ;
225
+ let total = Category :: count_toplevel ( conn) ? ;
226
226
227
227
#[ derive( RustcEncodable ) ]
228
228
struct R { categories : Vec < EncodableCategory > , meta : Meta }
@@ -238,9 +238,9 @@ pub fn index(req: &mut Request) -> CargoResult<Response> {
238
238
/// Handles the `GET /categories/:category_id` route.
239
239
pub fn show ( req : & mut Request ) -> CargoResult < Response > {
240
240
let slug = & req. params ( ) [ "category_id" ] ;
241
- let conn = try! ( req. tx ( ) ) ;
242
- let cat = try! ( Category :: find_by_slug ( & * conn, & slug) ) ;
243
- let subcats = try! ( cat. subcategories ( & * conn) ) . into_iter ( ) . map ( |s| {
241
+ let conn = req. tx ( ) ? ;
242
+ let cat = Category :: find_by_slug ( & * conn, & slug) ? ;
243
+ let subcats = cat. subcategories ( & * conn) ? . into_iter ( ) . map ( |s| {
244
244
s. encodable ( )
245
245
} ) . collect ( ) ;
246
246
let cat = cat. encodable ( ) ;
@@ -261,10 +261,10 @@ pub fn show(req: &mut Request) -> CargoResult<Response> {
261
261
262
262
/// Handles the `GET /category_slugs` route.
263
263
pub fn slugs ( req : & mut Request ) -> CargoResult < Response > {
264
- let conn = try! ( req. tx ( ) ) ;
265
- let stmt = try! ( conn. prepare ( "SELECT slug FROM categories \
266
- ORDER BY slug") ) ;
267
- let rows = try! ( stmt. query ( & [ ] ) ) ;
264
+ let conn = req. tx ( ) ? ;
265
+ let stmt = conn. prepare ( "SELECT slug FROM categories \
266
+ ORDER BY slug") ? ;
267
+ let rows = stmt. query ( & [ ] ) ? ;
268
268
269
269
#[ derive( RustcEncodable ) ]
270
270
struct Slug { id : String , slug : String }
0 commit comments