jobs/eam-integrations/scripts/workday_netsuite/api/netsuite/netsuite_restlet.py (62 lines of code) (raw):

from requests_oauthlib import OAuth1 from .secrets import config from api.util import APIAdaptor import logging class NetSuiteRestletException(Exception): pass class NetSuiteRestlet(): def __init__(self) -> None: self.api_adapter = APIAdaptor(host=config.get('host')) self.auth = self.createAuth() self.logger = logging.getLogger(self.__class__.__name__) self.headers = {"Content-Type": "application/json"} self.endpoint = f"/app/site/hosting/restlet.nl" def createAuth(self): auth = OAuth1( client_key=config.get("consumer_key"), client_secret=config.get("consumer_secret"), resource_owner_key=config.get("token_id"), resource_owner_secret=config.get("token_secret"), realm=config.get("oauth_realm"), signature_method="HMAC-SHA256", ) return auth def run_get(self, params): return self.api_adapter.get(endpoint=self.endpoint, auth=self.auth, params=params, headers=self.headers) def get_product_class_mapping(self): params = {'script':2026,'deploy':1} return self.run_get(params=params) def get_employees(self): #sandbox 2024 headers = {"Content-Type": "application/json"} endpoint = f"/app/site/hosting/restlet.nl" params = {'script':2025,'deploy':1} ret = self.api_adapter.get(endpoint=endpoint, auth=self.auth, params=params, headers=headers) return ret def post_error_report(self, body_data): #sandbox 2025 headers = {"Content-Type": "application/json"} endpoint = f"/app/site/hosting/restlet.nl" params = {'script':2027,'deploy':1} ret = self.api_adapter.post(endpoint=endpoint, auth=self.auth, params=params, headers=headers, data=body_data) return ret def update(self, body_data): #sandbox 2024 headers = {"Content-Type": "application/json"} endpoint = f"/app/site/hosting/restlet.nl" params = {'script':2025,'deploy':1} ret = self.api_adapter.post(endpoint=endpoint, auth=self.auth, params=params, headers=headers, data=body_data) if len(ret.data)==0: print("empty return") self.logger.info(f"POST returned empty string. INPUT {body_data}") return "" if 'successfully' in ret.data.lower(): self.logger.info(f"{ret.data}") return "" if isinstance(ret.data,str): print(ret.data) return ret.data if ret.data.get("type", "") == 'error.SuiteScriptError': return ret.data raise NetSuiteRestletException(ret)