File tree Expand file tree Collapse file tree 4 files changed +10
-9
lines changed Expand file tree Collapse file tree 4 files changed +10
-9
lines changed Original file line number Diff line number Diff line change @@ -159,9 +159,7 @@ pub fn index(req: &mut Request) -> CargoResult<Response> {
159
159
}
160
160
161
161
// Query for the total count of keywords
162
- let stmt = try!( conn. prepare ( "SELECT COUNT(*) FROM keywords" ) ) ;
163
- let row = try!( stmt. query ( & [ ] ) ) . into_iter ( ) . next ( ) . unwrap ( ) ;
164
- let total = row. get ( 0 ) ;
162
+ let total = try!( Keyword :: count ( conn) ) ;
165
163
166
164
#[ derive( RustcEncodable ) ]
167
165
struct R { keywords : Vec < EncodableKeyword > , meta : Meta }
Original file line number Diff line number Diff line change @@ -588,11 +588,7 @@ pub fn index(req: &mut Request) -> CargoResult<Response> {
588
588
/// Handles the `GET /summary` route.
589
589
pub fn summary ( req : & mut Request ) -> CargoResult < Response > {
590
590
let tx = try!( req. tx ( ) ) ;
591
- let num_crates = {
592
- let stmt = try!( tx. prepare ( "SELECT COUNT(*) FROM crates" ) ) ;
593
- let rows = try!( stmt. query ( & [ ] ) ) ;
594
- rows. iter ( ) . next ( ) . unwrap ( ) . get ( "count" )
595
- } ;
591
+ let num_crates = try!( Crate :: count ( tx) ) ;
596
592
let num_downloads = {
597
593
let stmt = try!( tx. prepare ( "SELECT total_downloads FROM metadata" ) ) ;
598
594
let rows = try!( stmt. query ( & [ ] ) ) ;
Original file line number Diff line number Diff line change @@ -16,4 +16,11 @@ pub trait Model: Sized {
16
16
let row = try!( rows. into_iter ( ) . next ( ) . chain_error ( || NotFound ) ) ;
17
17
Ok ( Model :: from_row ( & row) )
18
18
}
19
+
20
+ fn count ( conn : & GenericConnection ) -> CargoResult < i64 > {
21
+ let sql = format ! ( "SELECT COUNT(*) FROM {}" , Model :: table_name( None :: <Self >) ) ;
22
+ let stmt = try!( conn. prepare ( & sql) ) ;
23
+ let rows = try!( stmt. query ( & [ ] ) ) ;
24
+ Ok ( rows. iter ( ) . next ( ) . unwrap ( ) . get ( "count" ) )
25
+ }
19
26
}
Original file line number Diff line number Diff line change @@ -32,11 +32,11 @@ impl conduit_middleware::Middleware for Middleware {
32
32
None => {
33
33
34
34
// Look for an `Authorization` header on the request
35
- let tx = try!( req. tx ( ) . map_err ( std_error) ) ;
36
35
match req. headers ( ) . find ( "Authorization" ) {
37
36
Some ( headers) => {
38
37
39
38
// Look for a user in the database with a matching API token
39
+ let tx = try!( req. tx ( ) . map_err ( std_error) ) ;
40
40
match User :: find_by_api_token ( tx, & headers[ 0 ] ) {
41
41
Ok ( user) => user,
42
42
Err ( ..) => return Ok ( ( ) )
You can’t perform that action at this time.
0 commit comments