def add_interviewer(): form = request.form print('form is', form) name = form.get('interviewer_name', -1) print('name is', name) Interviewer.new(name=name) return redirect(url_for('.admin'))
def add_slot_i(iid): t_from = request.args.get('t_from', -1) t_to = request.args.get('t_to', -1) if Interviewer.check_existence_by_id(iid): if is_slot_legal(t_from, t_to): t_from = int(t_from) t_to = int(t_to) Interviewer.add_slot_by_id(iid, t_from, t_to) slots = Interviewer.get_slots_by_id(iid) return api_encoder(slots) else: return bad_request('Slot is illegal') else: return bad_request('Interviewer not exists')
def get_matching_for_candidate(cid): iids_raw = request.args.get('iids', []) iids = api_decoder(iids_raw) if Candidate.check_existence_by_id(cid): if type(iids) is list and len(iids) > 0: if Interviewer.check_all_existence_by_id(iids): print(cid, iids) ms = Candidate.get_matching_by_id(cid, iids) print(ms) return api_encoder(ms) else: return bad_request('Candidate not exists') return bad_request('Iids is illegal')
def initialize4test(): """ Drop database and add candidates & interviewers for test purpose """ client = MongoClient() client.drop_database('calender') Candidate.new(name='C1') Interviewer.new(name='I1') Interviewer.new(name='I2') Interviewer.new(name='I3')
def test_matching(self): initialize4test() dt1 = datetime(2018, 8, 8, 8) dt2 = datetime(2018, 9, 9, 9) dt3 = datetime(2018, 9, 9, 10) dt4 = datetime(2018, 9, 9, 11) dt5 = datetime(2018, 9, 9, 12) dt8 = datetime(2019, 1, 1, 1) et1 = datetime2epoch(dt1) et2 = datetime2epoch(dt2) et3 = datetime2epoch(dt3) et4 = datetime2epoch(dt4) et5 = datetime2epoch(dt5) et8 = datetime2epoch(dt8) Candidate.add_slot_by_id(1, et2, et5) Interviewer.add_slot_by_id(1, et2, et3) Interviewer.add_slot_by_id(2, et2, et4) Interviewer.add_slot_by_id(3, et3, et5) url1 = "http://localhost:5000/api/candidates/1/matching" querystring1 = {"iids":"[1]"} headers1 = { 'Cache-Control': "no-cache", 'Postman-Token': "fc7bc0ff-37d9-4175-a234-6111685758f4" } response1 = requests.request("GET", url1, headers=headers1, params=querystring1) m1_raw = response1.content.decode('ascii') m1 = json.loads(m1_raw) self.assertEqual(m1[0]['t_start'], et2) self.assertEqual(m1[0]['t_end'], et3) self.assertEqual(m1[0]['cid'], 1) self.assertEqual(m1[0]['iids'][0], 1) # matching test2 url2 = "http://localhost:5000/api/candidates/1/matching" querystring2 = {"iids":"[1, 2, 3]"} headers2 = { 'Cache-Control': "no-cache", 'Postman-Token': "fc7bc0ff-37d9-4175-a234-6111685758f4" } response2 = requests.request("GET", url2, headers=headers2, params=querystring2) m2_raw = response2.content.decode('ascii') m2 = json.loads(m2_raw) self.assertEqual(m2[0]['t_start'], et2) self.assertEqual(m2[0]['t_end'], et3) self.assertEqual(m2[0]['iids'][0], 1) self.assertEqual(m2[0]['iids'][1], 2) self.assertEqual(m2[1]['t_start'], et3) self.assertEqual(m2[1]['t_end'], et4) self.assertEqual(m2[1]['iids'][0], 2) self.assertEqual(m2[1]['iids'][1], 3) self.assertEqual(m2[2]['t_start'], et4) self.assertEqual(m2[2]['t_end'], et5) self.assertEqual(m2[2]['iids'][0], 3)
def get_interviewers(rc_id): return Interviewer.objects(rc_id=rc_id)
def create_interviewer(name, availabilities, rc_id): new_interviewer = Interviewer(name=name, availabilities=availabilities, rc_id=rc_id) new_interviewer.save()