gallery api update
This commit is contained in:
1 parent
7ceb862dfc
commit
ea0d1175a5
3 files changed
+45
-59
No files matched your search
@@ -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});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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
@@ -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;
|
||||||
|
});
|
||||||
Reference in new issue
Block a user