def process_GET(self, request): # build up query session = self.env.db.session() query = session.query( WaveformChannel.network, WaveformChannel.station, WaveformChannel.location, WaveformChannel.channel, func.max(WaveformChannel.endtime).label('latency') ) query = query.group_by( WaveformChannel.network, WaveformChannel.station, WaveformChannel.location, WaveformChannel.channel ) # process arguments for key in ['network_id', 'station_id', 'location_id', 'channel_id']: text = request.args0.get(key, None) if text == None: continue col = getattr(WaveformChannel, key[:-3]) if text == "": query = query.filter(col == None) elif '*' in text or '?' in text: text = text.replace('?', '_') text = text.replace('*', '%') query = query.filter(col.like(text)) else: query = query.filter(col == text) data = formatORMResults(request, query) session.close() return data
def process_GET(self, request): session = self.env.db.session() query = session.query(WaveformChannel.network) query = query.group_by(WaveformChannel.network) data = formatORMResults(request, query) session.close() return data
def process_GET(self, request): network = request.args0.get('network_id', None) session = self.env.db.session() query = session.query(WaveformChannel.station) if network: query = query.filter(WaveformChannel.network == network) query = query.group_by(WaveformChannel.station) data = formatORMResults(request, query) session.close() return data