|
1 | 1 | use chrono::NaiveDateTime;
|
2 |
| -use conduit::{Request, Response}; |
3 |
| -use conduit_router::RequestParams; |
4 | 2 | use diesel::*;
|
5 | 3 |
|
6 |
| -use db::RequestTransaction; |
7 |
| -use util::{CargoResult, RequestUtils}; |
8 |
| - |
9 | 4 | use models::Crate;
|
10 | 5 | use schema::*;
|
11 | 6 |
|
@@ -180,90 +175,6 @@ impl<'a> NewCategory<'a> {
|
180 | 175 | }
|
181 | 176 | }
|
182 | 177 |
|
183 |
| -/// Handles the `GET /categories` route. |
184 |
| -pub fn index(req: &mut Request) -> CargoResult<Response> { |
185 |
| - let conn = req.db_conn()?; |
186 |
| - let (offset, limit) = req.pagination(10, 100)?; |
187 |
| - let query = req.query(); |
188 |
| - let sort = query.get("sort").map_or("alpha", String::as_str); |
189 |
| - |
190 |
| - let categories = Category::toplevel(&conn, sort, limit, offset)?; |
191 |
| - let categories = categories.into_iter().map(Category::encodable).collect(); |
192 |
| - |
193 |
| - // Query for the total count of categories |
194 |
| - let total = Category::count_toplevel(&conn)?; |
195 |
| - |
196 |
| - #[derive(Serialize)] |
197 |
| - struct R { |
198 |
| - categories: Vec<EncodableCategory>, |
199 |
| - meta: Meta, |
200 |
| - } |
201 |
| - #[derive(Serialize)] |
202 |
| - struct Meta { |
203 |
| - total: i64, |
204 |
| - } |
205 |
| - |
206 |
| - Ok(req.json(&R { |
207 |
| - categories: categories, |
208 |
| - meta: Meta { total: total }, |
209 |
| - })) |
210 |
| -} |
211 |
| - |
212 |
| -/// Handles the `GET /categories/:category_id` route. |
213 |
| -pub fn show(req: &mut Request) -> CargoResult<Response> { |
214 |
| - let slug = &req.params()["category_id"]; |
215 |
| - let conn = req.db_conn()?; |
216 |
| - let cat = categories::table |
217 |
| - .filter(categories::slug.eq(::lower(slug))) |
218 |
| - .first::<Category>(&*conn)?; |
219 |
| - let subcats = cat.subcategories(&conn)? |
220 |
| - .into_iter() |
221 |
| - .map(Category::encodable) |
222 |
| - .collect(); |
223 |
| - |
224 |
| - let cat = cat.encodable(); |
225 |
| - let cat_with_subcats = EncodableCategoryWithSubcategories { |
226 |
| - id: cat.id, |
227 |
| - category: cat.category, |
228 |
| - slug: cat.slug, |
229 |
| - description: cat.description, |
230 |
| - created_at: cat.created_at, |
231 |
| - crates_cnt: cat.crates_cnt, |
232 |
| - subcategories: subcats, |
233 |
| - }; |
234 |
| - |
235 |
| - #[derive(Serialize)] |
236 |
| - struct R { |
237 |
| - category: EncodableCategoryWithSubcategories, |
238 |
| - } |
239 |
| - Ok(req.json(&R { |
240 |
| - category: cat_with_subcats, |
241 |
| - })) |
242 |
| -} |
243 |
| - |
244 |
| -/// Handles the `GET /category_slugs` route. |
245 |
| -pub fn slugs(req: &mut Request) -> CargoResult<Response> { |
246 |
| - let conn = req.db_conn()?; |
247 |
| - let slugs = categories::table |
248 |
| - .select((categories::slug, categories::slug)) |
249 |
| - .order(categories::slug) |
250 |
| - .load(&*conn)?; |
251 |
| - |
252 |
| - #[derive(Serialize, Queryable)] |
253 |
| - struct Slug { |
254 |
| - id: String, |
255 |
| - slug: String, |
256 |
| - } |
257 |
| - |
258 |
| - #[derive(Serialize)] |
259 |
| - struct R { |
260 |
| - category_slugs: Vec<Slug>, |
261 |
| - } |
262 |
| - Ok(req.json(&R { |
263 |
| - category_slugs: slugs, |
264 |
| - })) |
265 |
| -} |
266 |
| - |
267 | 178 | #[cfg(test)]
|
268 | 179 | mod tests {
|
269 | 180 | use super::*;
|
|
0 commit comments