+ APISchedule
This commit is contained in:
1 parent
c33944866e
commit
c855aa9b5f
3 files changed
+25
-9
No files matched your search
@@ -2,6 +2,7 @@ import APIFeed from './APIFeed';
|
||||
import APIGallery from './APIGallery';
|
||||
import APIDocument from './APIDocument';
|
||||
import APICollective from './APICollective';
|
||||
import APISchedule from './APISchedule';
|
||||
|
||||
export default class API {
|
||||
constructor(request) {
|
||||
@@ -9,5 +10,6 @@ export default class API {
|
||||
this.gallery = new APIGallery(request);
|
||||
this.document = new APIDocument(request);
|
||||
this.collective = new APICollective(request);
|
||||
this.schedule = new APISchedule(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import EndPoint from './EndPoint';
|
||||
|
||||
export default class APISchedule extends EndPoint {
|
||||
get(period, semester, doPopulate=true) {
|
||||
let url = `/schedule/${period}/${semester}?populate=${doPopulate}`;
|
||||
return this.request.get(url, {cache: true});
|
||||
}
|
||||
|
||||
buildScheduleUrl(period, semester) {
|
||||
return `/schedule/${period}/${semester}`;
|
||||
}
|
||||
|
||||
list() {
|
||||
let url = '/schedule/list';
|
||||
return this.request.get(url, {cache: true});
|
||||
}
|
||||
}
|
||||
@@ -10,19 +10,20 @@ function isRequested(period, semester) {
|
||||
}
|
||||
|
||||
export default function (app) {
|
||||
app.controller('ScheduleController', ($scope, $http, $location, $routeParams, scheduleData, team, menu) => {
|
||||
app.controller('ScheduleController', ($scope, $http, $location, $routeParams, api, menu) => {
|
||||
menu.activate('/schedule');
|
||||
|
||||
let current_period = $routeParams.period;
|
||||
let current_semester = $routeParams.semester;
|
||||
let isScheduleRequested = current_period && current_semester;
|
||||
|
||||
$scope.schedules = [];
|
||||
let getScheduleByID = (id) => choise(
|
||||
$scope.schedules,
|
||||
select(i => i._id === id)
|
||||
);
|
||||
|
||||
$http.get('/schedules', {cache: true})
|
||||
api.schedule.list()
|
||||
.success(schedules => {
|
||||
// By url params or last element
|
||||
let selector = isScheduleRequested ? isRequested(current_period, current_semester) : indexEquals(schedules.length - 1);
|
||||
@@ -56,15 +57,11 @@ export default function (app) {
|
||||
let sem = schedule_item.semester;
|
||||
let period = schedule_item.period;
|
||||
|
||||
let url = `/schedule/${period}/${sem}`;
|
||||
$http.get(url, {cache: true})
|
||||
api.schedule.get(period, sem, true)
|
||||
.success(scheduleRecord => {
|
||||
$scope.schedule = scheduleData.populate(scheduleRecord.schedule, [
|
||||
populate(team.short, 'teacher'),
|
||||
populate(getCourseNameByID, 'lesson')
|
||||
]);
|
||||
$scope.schedule = scheduleRecord.schedule;
|
||||
|
||||
if (doUpdateURL) $location.url(url);
|
||||
if (doUpdateURL) $location.url(api.schedule.buildScheduleUrl(period, sem));
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user