From 4c2a7e6d00616ad1951db08f486cb27cb87e2fa3 Mon Sep 17 00:00:00 2001 From: Alan Date: Fri, 12 Apr 2019 17:52:08 -0400 Subject: [PATCH] Maybe got it to work. Maybe. --- api.js | 31 ++++++++------------- register.js | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++ routes/sis.js | 11 ++++++++ 3 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 register.js diff --git a/api.js b/api.js index adb1bd7..c8bce2a 100644 --- a/api.js +++ b/api.js @@ -9,6 +9,7 @@ request = request.defaults({ const sources = require('./sources.json'); const $ = require('cheerio'); +const reg_params = require('./register.js'); var moment = require('moment'); @@ -49,32 +50,22 @@ module.exports = { }); }); }, - register: (term, CRN[], next) => { + register: (term, CRN, next) => { // gets the registration request.get(sources.sis.register, () =>{ request({ uri: sources.sis.register, method: "POST", - qs: { - "term_in": term, - //TODO: add more variables. figure out how adding the same variable works. - } - }, (err, res, body) => { + qs: reg_params(term, CRN) + }, + (err, res, body) => { if (!err && res.statusCode == 200) { - var msg = $('meta',body).attr('content'); - try { - next(null, res.headers['set-cookie'], msg.slice( - msg.indexOf('Welcome,+')+9, - msg.indexOf('+to+the+Rensselaer')-1 - )); - } - catch (err) { - next("Problem communicating with SIS"); - } - } else { - next(err); - } - }); + next(null); + } + else{ + next("Problem communicating with SIS"); + } + }); }); }, logout: (next) => { diff --git a/register.js b/register.js new file mode 100644 index 0000000..eb7f2b8 --- /dev/null +++ b/register.js @@ -0,0 +1,77 @@ +module.exports = (term, CRN) => { + var CRN_val = ["", "", "", "", "", "", "", "", "", ""]; + for (var i = 0; i < CRN.length; i++){ + CRN_val[i] = CRN[i]; + } + var obj = { + "term_in": term, + "RSTS_IN": "RW", + "assoc_term_in": "DUMMY", + "CRN_IN": CRN_val[0], + "start_date_in": "DUMMY", + "end_date_in": "DUMMY", + "SUBJ": "DUMMY", + "CRSE": "DUMMY", + "SEC": "DUMMY", + "LEVL": "DUMMY", + "CRED": "DUMMY", + "GMOD": "DUMMY", + "TITLE": "DUMMY", + "MESG": "DUMMY", + "REG_BTN": "Submit Changes", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[1], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[2], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[3], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[4], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[5], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[6], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[7], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[8], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "RSTS_IN": "RW", + "CRN_IN": CRN_val[9], + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + + "assoc_term_in": "", + "start_date_in": "", + "end_date_in": "", + "regs_row": "0", + "wait_row": "0", + "add_row": "10" + } + + return obj; +} diff --git a/routes/sis.js b/routes/sis.js index cf2680f..df6b514 100644 --- a/routes/sis.js +++ b/routes/sis.js @@ -28,6 +28,17 @@ module.exports = function(app, api, auth) { }) ); + app.post("/course/add", (req, res) =>{ + var CRN = req.query.CRN_IN; + api.register(req.query.term_in, CRN, (err, body) => { + if (!err) + res.send(body); + else { + res.status(500).send(err); + } + }); + }); + app.get("/schedule", (req,res) => { api.get_schedule((err, body) => { if (!err) -- 2.51.2