def get(self): """Lists all Submissions in the database. If query parameters are set, api will return matches. """ res = ServerResponse() if(len(self.request.query) > 3): search = DerivativeSearch( parseRequest(self.request.query), remove=['_rev','rt_'] ) res.data = search.submissions else: res.data = db.query( "_design/submissions/_view/getSubmissions", remove=['_rev','rt_'] ) if len(res.data) > 0 and res.data[0]: res.result = 200 else: del res.data self.write(res.emit())
def post(self): """Add a new Source to the database. Only the server may utilize this method. required parameters in post: _id package_name package_content """ res = ServerResponse() params = parseRequest(self.request.body) if params is not None: source = ICSource(inflate={'_id' : params['_id']}) if source.addFile(params['package_name'], params['package_content']): if source.importAssets(params['package_name']): res.result = 200 res.data = source.emit() else: source.invalidate( invalidate['codes']['source_invalid_public_credentials'], invalidate['reasons']['source_invalid_public_credentials'] ) res.reason = source.invalid self.write(res.emit())
def get(self, submission_id): """Returns the specified Submission. required: _id """ res = ServerResponse() if passesParameterFilter(submission_id): submission = ICSubmission(_id = submission_id) if not hasattr(submission, 'invalid'): res.data = submission.emit() res.result = 200 else: res.reason = submission.invalid if len(self.request.query) > 3: with_query = submission.search(parseRequest(self.request.query)) res.data['refined_search'] = {} if hasattr(with_query, 'annotations'): res.data['refined_search']['annotations'] = with_query.annotations self.write(res.emit())
def post(self): """Add a new Submission to the database. Only the server may utilize this method. required parameters in post: _id package_name package_content """ res = ServerResponse() params = parseRequest(self.request.body) if params is not None: submission = ICSubmission(inflate={'_id' : params['_id']}) if submission.addFile(params['package_name'], params['package_content']): if submission.importAssets(params['package_name']): submission.setMimeType(params['mime_type']) res.result = 200 res.data = submission.emit() else: submission.invalidate( invalidate['codes']['asset_non_existent'], invalidate['reasons']['asset_non_existent'] ) res.reason = submission.invalid self.write(res.emit())
def post(self, _id): res = Res() if passesParameterFilter(_id): source = ICSource(_id=_id) for k,v in parseRequest(self.request.body).iteritems(): if k not in source.locked_fields: setattr(source, k, v) if source.save(): res.data = source.emit() res.result = 200 self.finish(res.emit())
def post(self, _id): res = Res() if passesParameterFilter(_id): submission = ICSubmission(_id=_id) if not hasattr(submission, "invalid"): for k,v in parseRequest(self.request.body).iteritems(): if k not in submission.locked_fields: setattr(source, k, v) if submission.save(): res.data = submission.emit() res.result = 200 self.finish(res.emit())
def get(self): res = Res() q = False clauses = [] op = None print urllib2.unquote(self.request.query) for k,v in parseRequest(urllib2.unquote(self.request.query)).iteritems(): if k == "operator": op = v else: clauses.append({ "field" : k, k : v }) el = Elasticsearch(river="j3m") #el = Elasticsearch(river="j3m,submissions") if len(clauses) == 1: q = el.query({"clauses" : clauses}) elif len(clauses) == 0: q = el.query({ "clauses": [ { "field" : "get_all", "get_all" : False } ] }) else: if op is None: op = "and" q = el.query({ "operator" : op, "clauses" : clauses }) if q is not False: res.data = q res.result = 200 self.finish(res.emit())
def get(self): """List all Sources in database""" res = ServerResponse() if(len(self.request.query) > 3): search = SourceSearch(parseRequest(self.request.query)) res.data = search.sources else: res.data = db.query( "_design/sources/_view/getSources", remove=['_rev','rt_'] ) if len(res.data) > 0 and res.data[0]: res.result = 200 else: del res.data self.write(res.emit())