// logs.cpp // // Rivendell web service portal -- Log services // // (C) Copyright 2013,2016 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as // published by the Free Software Foundation. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public // License along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // #include #include #include #include #include #include #include #include #include #include #include #include #include void Xport::ListLogs() { QString sql; RDSqlQuery *q; RDLog *log; QString service_name=""; QString trackable; // // Get Options // xport_post->getValue("SERVICE_NAME",&service_name); xport_post->getValue("TRACKABLE",&trackable); // // Generate Log List // sql="select NAME from LOGS"; if((!service_name.isEmpty())||(trackable=="1")) { sql+=" where"; if(!service_name.isEmpty()) { sql+=" (SERVICE=\""+RDEscapeString(service_name)+"\")&&"; } if(trackable=="1") { sql+=" (SCHEDULED_TRACKS>0)&&"; } sql=sql.left(sql.length()-2); } sql+=" order by NAME"; q=new RDSqlQuery(sql); // // Process Request // printf("Content-type: application/xml\n"); printf("Status: 200\n\n"); printf("\n"); printf("\n"); while(q->next()) { log=new RDLog(q->value(0).toString()); printf("%s",(const char *)log->xml()); delete log; } printf("\n"); delete q; Exit(0); } void Xport::ListLog() { RDLog *log; QString name=""; // // Get Options // xport_post->getValue("NAME",&name); // // Verify that log exists // log=new RDLog(name); if(!log->exists()) { delete log; XmlExit("No such log",404); } // // Generate Log Listing // RDLogEvent *log_event=log->createLogEvent(); log_event->load(true); // // Process Request // printf("Content-type: application/xml\n"); printf("Status: 200\n\n"); printf("\n"); printf("%s\n",(const char *)log_event->xml()); Exit(0); }