UNPKG

ih-black-lion

Version:

State handler for Arus projects

37 lines (32 loc) 1.55 kB
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>`; } } }