def getObjectId(request): """ Parse the object id from the request. :type request: pyramid.request :return: int """ objectid = None if request.method == 'POST' and 'objectid' in request.json_body: objectid = request.json_body['objectid'] if request.method == 'GET' and 'objectid' in request.params: objectid = request.params['objectid'] if objectid is None: return None else: namespace, id = objectid.rsplit('-', 1) # check if it is the correct namespace if namespace == OAI_ID_PATTERN.rsplit('-', 1)[0]: return int(id) return None
def adminEvaluationGeoreferenceProcess(request): try: LOGGER.info('Request - Get georeference processes.') if 'mapid' in request.params: LOGGER.debug('Get processes for mapid %s ...'%request.params['mapid']) # parse the id mapid = None if '-' in request.params['mapid']: namespace, mapid = request.params['mapid'].rsplit('-', 1) # check if it is the correct namespace if namespace != OAI_ID_PATTERN.rsplit('-', 1)[0]: return [] queryData = request.db.query(Georeferenzierungsprozess, Metadata).join(Metadata, Georeferenzierungsprozess.mapid == Metadata.mapid)\ .filter(Georeferenzierungsprozess.mapid == mapid)\ .order_by(desc(Georeferenzierungsprozess.id)) elif 'userid' in request.params: LOGGER.debug('Get processes for userid %s ...'%request.params['userid']) queryData = request.db.query(Georeferenzierungsprozess, Metadata).join(Metadata, Georeferenzierungsprozess.mapid == Metadata.mapid)\ .filter(Georeferenzierungsprozess.nutzerid == request.params['userid'])\ .order_by(desc(Georeferenzierungsprozess.id)) elif 'validation' in request.params: LOGGER.debug('Get processes for adminvalidation %s ...'%request.params['validation']) queryData = request.db.query(Georeferenzierungsprozess, Metadata).join(Metadata, Georeferenzierungsprozess.mapid == Metadata.mapid)\ .filter(Georeferenzierungsprozess.adminvalidation == request.params['validation'])\ .order_by(desc(Georeferenzierungsprozess.id)) else: LOGGER.debug('Get all pending processes ...') queryData = request.db.query(Georeferenzierungsprozess, Metadata).join(Metadata, Georeferenzierungsprozess.mapid == Metadata.mapid)\ .filter(or_(Georeferenzierungsprozess.adminvalidation == '', Georeferenzierungsprozess.adminvalidation == None))\ .order_by(desc(Georeferenzierungsprozess.id)) response = [] for record in queryData: georef = record[0] metadata = record[1] dict = { 'georef_id':georef.id, 'mapid':georef.mapid, 'georef_params': georef.georefparams, 'time': str(metadata.timepublish), 'processed': georef.processed, 'adminvalidation': georef.adminvalidation, 'title': metadata.title, 'apsobjectid': georef.messtischblattid, 'georef_time':str(georef.timestamp), 'type':georef.type, 'userid': georef.nutzerid, 'georef_isactive':georef.isactive } if georef.clip is not None: dict['clippolygon'] = { 'source': 'EPSG:%s' % georef.getSRIDClip(request.db), 'polygon': convertPostgisStringToList(georef.clip) } response.append(dict) return response except Exception as e: LOGGER.error(e) LOGGER.error(traceback.format_exc()) return HTTPInternalServerError(GENERAL_ERROR_MESSAGE)