gallery api update

This commit is contained in:
tmshv committed 2016-02-25 05:22:36 +03:00
1 parent 7ceb862dfc
commit ea0d1175a5
3 files changed
+45 -59

No files matched your search

+2 -6
View File
@@ -1,7 +1,3 @@
/**
* Created by tmshv on 22/11/14.
*/
import EndPoint from './EndPoint'; import EndPoint from './EndPoint';
export default class APIGallery extends EndPoint { export default class APIGallery extends EndPoint {
@@ -9,8 +5,8 @@ export default class APIGallery extends EndPoint {
return this.request.get(`/gallery/${year}`, {cache: true}); return this.request.get(`/gallery/${year}`, {cache: true});
} }
album(year, course, album) { album(year, course, album, doPopulate) {
let url = `/gallery/${year}/${course}/${album}`; let url = `/gallery/${year}/${course}/${album}?populate=${doPopulate}`;
return this.request.get(url, {cache: true}); return this.request.get(url, {cache: true});
} }
} }
+3 -2
View File
@@ -1,5 +1,5 @@
export default function (app) { export default function (app) {
app.controller('AlbumController', ($scope, $rootScope, $http, $routeParams, team, api, menu) => { app.controller('AlbumController', ($scope, $rootScope, $http, $routeParams, api, menu) => {
menu.activate('/gallery'); menu.activate('/gallery');
let year_uri = $routeParams.year; let year_uri = $routeParams.year;
@@ -8,7 +8,8 @@ export default function (app) {
api.gallery.album(year_uri, course_uri, album_uri) api.gallery.album(year_uri, course_uri, album_uri)
.success(album => { .success(album => {
album.teacherName = team.name(album['teacher']); //album.teacherName = team.name(album['teacher']);
album.teacherName = album['teacher'];
$scope.album = album; $scope.album = album;
$scope.crumbs = [ $scope.crumbs = [
+40 -51
View File
@@ -1,83 +1,72 @@
/** import co from 'co';
* Created by tmshv on 22/11/14. import route from 'koa-route';
*/ import {c} from '../core/db';
import {json} from './';
var co = require("co"); export default function (app) {
var route = require("koa-route"); app.use(route.get('/gallery', json(
var router = require("./"); function *() {
var db = require("../core/db");
module.exports = function (app) {
app.use(route.get("/gallery", router.accepts({
"text/html": router.index(),
"text/plain": router.index(),
"application/json": function *() {
var query = {}; var query = {};
var albums = yield db.c("albums") var albums = yield c('albums')
.find(query) .find(query)
.toArray(); .toArray();
albums = yield albums.map(processAlbum); albums = yield albums.map(processAlbum);
this.body = albums; this.body = albums;
} }
}))); )));
app.use(route.get("/gallery/:year", router.accepts({ app.use(route.get('/gallery/:year', json(
"text/html": router.index(), function *(year) {
"text/plain": router.index(),
"application/json": function *(year) {
year = parseInt(year); year = parseInt(year);
var start = new Date(year, 0, 1); let start = new Date(year, 0, 1);
var end = new Date(year, 11, 31); let end = new Date(year, 11, 31);
var query = { let query = {
date: {$gte: start, $lt: end} date: {$gte: start, $lt: end}
}; };
var albums = yield db.c("albums") let albums = yield c('albums')
.find(query) .find(query)
.toArray(); .toArray();
albums = yield albums.map(processAlbum); albums = yield albums.map(processAlbum);
this.body = albums; this.body = albums;
} }
}))); )));
app.use(route.get("/gallery/:year/:course/:album", router.accepts({ app.use(route.get('/gallery/:year/:course/:album', json(
"text/html": router.index(), function *(year, course, album) {
"text/plain": router.index(),
"application/json": function *(year, course, album) {
year = parseInt(year); year = parseInt(year);
course = '/' + course; course = '/' + course;
album = '/' + album; album = '/' + album;
var start = new Date(year, 0, 1); let start = new Date(year, 0, 1);
var end = new Date(year, 11, 31); let end = new Date(year, 11, 31);
var query = { let query = {
date: {$gte: start, $lt: end}, date: {$gte: start, $lt: end},
course_uri: course, course_uri: course,
uri: album uri: album
}; };
var a = yield db.c("albums").findOne(query); let record = yield c('albums').findOne(query);
a = yield processAlbum(a); record = yield processAlbum(record);
this.body = a; this.body = record;
} }
}))); )));
}; };
function processAlbum(album) { let processAlbum = album => co(function *() {
return co(function *() { album.url = `/gallery/{year}{course}{album}`
album.url = '/gallery/{year}{course}{album}' .replace('{year}', album.date.getFullYear())
.replace('{year}', album.date.getFullYear()) .replace('{course}', album.course_uri)
.replace('{course}', album.course_uri) .replace('{album}', album.uri);
.replace('{album}', album.uri);
album.content = yield album.content.map(function (product_id) { album.content = yield album.content.map(product_id => co(function *() {
return co(function *() { let product = yield c('products').findOne({_id: product_id});
var product = yield db.c("products").findOne({_id: product_id}); if (product) return product;
if (product) return product; else return null;
else return null; }));
});
});
return album; let teacher = yield c('collective').findOne({id: album.teacher});
}); album.teacher = teacher.name;
}
return album;
});