ih-black-lion
Version:
State handler for Arus projects
37 lines (32 loc) • 1.55 kB
JavaScript
import Connector from './Connector';
const URLS = {
tryURL: __SCHEDULE_URL__,
catchURL: process.env.SCHEDULE_URL,
};
export default class CourseHistoryConnector extends Connector {
constructor(requestMethod, requestParams, Model, term, ssrEnrlGetMode, acadCareer) {
super(requestMethod, requestParams, Model, URLS, ssrEnrlGetMode);
this.acadCareer = acadCareer;
this.term = term;
this.ssrEnrlGetMode = ssrEnrlGetMode;
this.modifySend();
}
checkTypes() {
super.checkTypes();
if (typeof this.ssrEnrlGetMode !== 'string') {
return Promise.reject(new TypeError(`Type of ssrEnrlGetMode is ${typeof this.ssrEnrlGetMode}. Expected a string\n\tssrEnrlGetMode = ${this.ssrEnrlGetMode}`));
} else if (typeof this.acadCareer !== 'string') {
return Promise.reject(new TypeError(`Type of acadCareer is ${typeof this.acadCareer}. Expected a string\n\tacadCareer = ${this.acadCareer}`));
}
return true;
}
modifySend() {
if (this.params.send) {
// Making sure that ssrEnrlGetMode is the same as the one that was sent in the request
const modeRe = /<SSR_ENRL_GET_MODE>([1-3])<\/SSR_ENRL_GET_MODE>/;
this.ssrEnrlGetMode = modeRe.exec(this.params.send)[1];
} else {
this.params.send = `<SSR_GET_ENROLLMENT_REQ><SCC_ENTITY_INST_ID></SCC_ENTITY_INST_ID><EMPLID></EMPLID><ACAD_CAREER>${this.acadCareer}</ACAD_CAREER><INSTITUTION>UCINN</INSTITUTION><STRM>${this.term}</STRM><SSR_ENRL_GET_MODE>${this.ssrEnrlGetMode}</SSR_ENRL_GET_MODE></SSR_GET_ENROLLMENT_REQ>`;
}
}
}