def doRootOperation(context, details, operation, payload): """ """ try: klass = details['klass'] func = getattr(klass, operation) if payload is not None: param = makeObject(payload) else: param = None result = func(context, param) return makeOKResult(result) except AttributeError: return BadURL()
def doRootOperation(context, details, operation, payload): """ """ try: klass = details['klass']; func = getattr(klass, operation) if payload is not None: param = makeObject(payload) else: param = None result = func(context, param) return makeOKResult(result); except AttributeError: return BadURL()
def _doHandle(self, httpOperation): """Respond to a GET request.""" try: if self.path.startswith( '/webapi/session') and httpOperation is 'GET': session = sessionManager.getSessionFromHttpHeaders( self.headers, storage) if session is None: session = sessionManager.createSession(storage) result = makeOKResult(session.clientSession) else: session = sessionManager.getSessionFromHttpHeaders( self.headers, storage) if session is None: result = makeNotAuthorized(session.clientSession) else: payload = None length = self.headers.getheader('content-length') if length is not None: intLength = int(length) if intLength > 0: payload = self.rfile.read(intLength) # special case notifications if self.path.startswith( '/webapi/notification') and httpOperation is 'GET': result = notificationSys.getListResult(session) else: if payload is not None and len(payload) > 0: try: payload = json.loads(payload) except ValueError: payload = None context = {"storage": storage, "session": session} result = doSchemaObjectOperation( context, self.path, httpOperation, payload) except BaseException as e: print("EXCEPTION DURING REQUEST HANDLING: " + str(e)) result = makeInternalServer() self.send_response(result['code']) session.writeSessionHeader(self) if result['obj'] is not None: self.send_header('Content-Type', 'text/json') self.end_headers() print(' # RESULT: ' + json.dumps(result['obj'].toJson())) self.wfile.write(result['obj'].toJson()) else: self.end_headers() self.wfile.write('')
def _doHandle(self, httpOperation): """Respond to a GET request.""" try: if self.path.startswith('/webapi/session') and httpOperation is 'GET': session = sessionManager.getSessionFromHttpHeaders(self.headers, storage) if session is None: session = sessionManager.createSession(storage) result = makeOKResult(session.clientSession) else: session = sessionManager.getSessionFromHttpHeaders(self.headers, storage) if session is None: result = makeNotAuthorized(session.clientSession) else: payload = None length = self.headers.getheader('content-length') if length is not None: intLength = int(length) if intLength > 0: payload = self.rfile.read(intLength) # special case notifications if self.path.startswith('/webapi/notification') and httpOperation is 'GET': queryIndex = self.path.find("?") queryParams = extractQueryParams(self.path[queryIndex + 1:]) result = notificationSys.getListResult(session, queryParams) else: if payload is not None and len(payload) > 0: try: payload = json.loads(payload) except ValueError: payload = None context = { "storage": storage, "session": session } result = doSchemaObjectOperation(context, self.path, httpOperation, payload) except BaseException as e: print("EXCEPTION DURING REQUEST HANDLING: " + str(e)) result = makeInternalServer() self.send_response(result['code']) session.writeSessionHeader(self) if result['obj'] is not None: self.send_header('Content-Type', 'text/json') self.end_headers() print(' # RESULT: ' + json.dumps(result['obj'].toJson())) self.wfile.write(result['obj'].toJson()) else: self.end_headers() self.wfile.write('')
def doObjectOperation(context, details, reference, operation, payload): """ """ obj = context['storage'].get(details['name'], reference) try: func = getattr(obj, operation) func = getattr(klass, operation) if payload is not None: param = makeObject(payload) else: param = None result = func(context, param) return makeOKResult(result) except AttributeError: return makeBadUrl()
def doObjectOperation(context, details, reference, operation, payload): """ """ obj = context['storage'].get(details['name'], reference); try: func = getattr(obj, operation) func = getattr(klass, operation) if payload is not None: param = makeObject(payload) else: param = None result = func(context, param) return makeOKResult(result); except AttributeError: return makeBadUrl()
def doCreate(context, details, payload): """ """ obj = makeObject(payload) # needed result = context['storage'].add(obj) return makeOKResult(result.reference)
def doDelete(context, details, reference, payload): """ """ context['storage'].delete(details['name'], reference) return makeOKResult(None)
def doUpdate(context, details, reference, payload): """ """ obj = context['storage'].get(details['name'], reference) obj.fromJson(payload) context['storage'].update(obj) return makeOKResult(None)
def doRead(context, details, reference): """ """ obj = context['storage'].get(details['name'], reference) return makeOKResult(obj)
def doCreate(context, details, payload): """ """ obj = makeObject(payload) # needed result = context['storage'].add(obj); return makeOKResult(result.reference)