ih-black-lion
Version:
State handler for Arus projects
106 lines (83 loc) • 4.56 kB
JavaScript
import models from './models';
import connectors from './connectors';
/**
* This handles all the different service requests that can be made. Each method corresponds to a
* specific service call. They each construct the request object for the call, make the call,
* check for a valid response, then instantiate the model designated to that call using the
* response object.
*
* Each method returns a `Promise` of an instance of the `Model` associated with the call, or, if
* the call came back successfully but the response data itself is invalid, a `Promise` of an
* instance of `Fault` is returned.
*
* @type {Object}
*/
// TODO: replace this with just a fetch function
const api = {
// Exposing the Fault class so that the client can compare responses to it
Fault: models.Fault,
getProfile(requestParams, Model = models.Profile) {
return new connectors.ProfileConnector('GET', requestParams, Model).Promise;
},
getPicture(requestParams, Model = models.Picture) {
return new connectors.PictureConnector('GET', requestParams, Model).Promise;
},
getSchedule(requestParams, term = '', ssrEnrlGetMode = '1', acadCareer = 'UGRD', Model = models.Schedule) {
return new connectors.ScheduleConnector('POST', requestParams, Model, term, ssrEnrlGetMode, acadCareer).Promise;
},
getSubjects(requestParams, subject = '', institution = 'UCINN', Model = models.Subjects) {
return new connectors.SubjectConnector('POST', requestParams, Model, subject, institution).Promise;
},
getCourses(requestParams, subject, institution = 'UCINN', Model = models.Courses) {
return new connectors.CoursesConnector('POST', requestParams, Model, subject, institution).Promise;
},
getNotifications(requestParams, Model = models.Notifications) {
return new connectors.NotificationsConnector('POST', requestParams, Model).Promise;
},
getEvents(requestParams, numDaysPast = 10, includeEvents = 'Y', Model = models.Events) {
return new connectors.EventsConnector('POST', requestParams, Model, numDaysPast, includeEvents).Promise;
},
changeReadStatus(requestParams, id, status, numDaysPast = 7) {
return new connectors.ReadStatusConnector('POST', requestParams, id, status, numDaysPast).Promise;
},
ucidLookup(requestParams, searchTerm, Model = models.UcidLookup) {
return new connectors.UCIDLookupConnector('GET', requestParams, Model, searchTerm).Promise;
},
getLovs(requestParams, lovParams, Model = models.Lovs) {
return new connectors.ListOfValuesConnector('POST', requestParams, Model, lovParams).Promise;
},
getServiceIndicators(requestParams, Model = models.ServiceIndicators) {
return new connectors.ServiceIndicatorsConnector('GET', requestParams, Model).Promise;
},
getChecklist(requestParams, Model = models.Checklist) {
return new connectors.ChecklistConnector('GET', requestParams, Model).Promise;
},
getFinancialAid(requestParams, aidYear = '', Model = models.FinancialAid) {
return new connectors.FinancialAidConnector('POST', requestParams, Model, aidYear).Promise;
},
getNavigationCollection(requestParams, pageletName, Model = models.NavigationCollection) {
return new connectors.NavigationCollectionConnector('GET', requestParams, Model, pageletName).Promise;
},
getNews(requestParams, pageletName, Model = models.News) {
return new connectors.NewsConnector('GET', requestParams, Model, pageletName).Promise;
},
getApplications(requestParams, Model = models.Applications) {
return new connectors.ApplicationsConnector('GET', requestParams, Model).Promise;
},
getStudentAccount(requestParams, term = '', Model = models.StudentAccount) {
return new connectors.StudentAccountConnector('POST', requestParams, Model, term).Promise;
},
getAcademicProfile(requestParams, Model = models.AcademicProfile) {
return new connectors.AcademicProfileConnector('GET', requestParams, Model).Promise;
},
getActivityGuide(requestParams, Model = models.ActivityGuide) {
return new connectors.ActivityGuideConnector('GET', requestParams, Model).Promise;
},
getCourseHistory(requestParams, term = '', ssrEnrlGetMode = '2', acadCareer = '', Model = models.CourseHistory) {
return new connectors.CourseHistoryConnector('POST', requestParams, Model, term, ssrEnrlGetMode, acadCareer).Promise;
},
getTuitionGuarantee(requestParams, Model = models.TuitionGuarantee) {
return new connectors.TuitionGuaranteeConnector('GETJSON', requestParams, Model).Promise;
},
};
export default api;