def post(self): data = request.form #print(request.cookies) # Check for data validity: if data is None: error(400, "Missing one or more required fields") if data.get('oecilogin') is None: error(400, "Missing OECI login username") if data.get('oecipassword') is None: error(400, "Missing OECI login password") response = make_response() credentials = {'username': data['oecilogin'], 'password': data['oecipassword']} #fake_creds = {'username': '******', 'password': '******'} cipher = DataCipher(key=current_app.config.get("SECRET_KEY")) encrypted_credentials = cipher.encrypt(credentials) #encrypted_fake_credentials = cipher.encrypt(fake_creds) # Try to log into OECI database try: Crawler.attempt_login(requests.Session(), credentials['username'], credentials['password']) response.set_cookie( "oeci_token", secure=os.getenv("TIER") == "production", samesite="strict", value=encrypted_credentials ) except UnableToReachOECI: error(404, "Unable to reach OECI database") except InvalidLoginCreds: error(401, "Invalid login credentials") return response, 201
def post(self): if TIMER: import time start_time = time.time() data = request.get_json() # Check for data validity: if data is None: error(400, "Missing first and last name") if len(data.get('first_name')) == 0: error(400, "Missing first name") if len(data.get('last_name')) == 0: error(400, "Missing last name") search_credentials = { 'first': data['first_name'], 'last': data['last_name'], 'middle': data['middle_name'] } session = requests.Session() username, password = Search._oeci_login_params(request) verify_login_credentials = Crawler.attempt_login( session, username, password) # Call search method search_results = Crawler.search(session, verify_login_credentials, search_credentials['first'], search_credentials['last'], search_credentials['middle']) if TIMER: print("--- Total Time: %s seconds ---" % (time.time() - start_time)) return json.dumps(search_results)