2019-12-06 12:24:44 +01:00
package com.wasteinformationserver.website.datarequests ;
import com.wasteinformationserver.basicutils.Log ;
import com.wasteinformationserver.db.JDCB ;
import com.wasteinformationserver.website.basicrequest.PostRequest ;
import java.io.IOException ;
import java.sql.ResultSet ;
import java.sql.SQLException ;
import java.util.HashMap ;
public class NewDateRequest extends PostRequest {
@Override
public String request ( HashMap < String , String > params ) {
StringBuilder sb = new StringBuilder ( ) ;
JDCB jdcb ;
try {
jdcb = JDCB . getInstance ( ) ;
} catch ( IOException e ) {
Log . error ( " no connection to db " ) ;
return " { \" query \" : \" nodbconn \" } " ;
}
switch ( params . get ( " action " ) ) {
case " getCitynames " :
ResultSet sett = jdcb . executeQuery ( " select * from cities " ) ;
Log . debug ( sett . toString ( ) ) ;
sb . append ( " { \" data \" :[ " ) ;
try {
String prev = " " ;
while ( sett . next ( ) ) {
2019-12-06 16:45:25 +01:00
if ( prev . equals ( sett . getString ( " name " ) ) ) {
2019-12-06 12:24:44 +01:00
2019-12-06 16:45:25 +01:00
} else {
if ( ! sett . isFirst ( ) ) {
2019-12-06 12:24:44 +01:00
sb . append ( " , " ) ;
}
2019-12-06 16:45:25 +01:00
sb . append ( " { \" cityname \" : \" " + sett . getString ( " name " ) + " \" } " ) ;
2019-12-06 12:24:44 +01:00
}
prev = sett . getString ( " name " ) ;
}
} catch ( SQLException e ) {
e . printStackTrace ( ) ;
}
sb . append ( " ] " ) ;
sb . append ( " , \" query \" : \" ok \" " ) ;
sb . append ( " } " ) ;
2019-12-06 16:45:25 +01:00
Log . debug ( sb . toString ( ) ) ;
2019-12-06 12:24:44 +01:00
break ;
case " getzones " :
2019-12-06 16:45:25 +01:00
ResultSet set = jdcb . executeQuery ( " select * from cities WHERE `name`=' " + params . get ( " cityname " ) + " ' ORDER BY zone ASC " ) ;
2019-12-06 12:24:44 +01:00
Log . debug ( set . toString ( ) ) ;
sb . append ( " { \" data \" :[ " ) ;
try {
int prev = 42 ;
while ( set . next ( ) ) {
2019-12-06 16:45:25 +01:00
if ( prev = = set . getInt ( " zone " ) ) {
2019-12-06 12:24:44 +01:00
2019-12-06 16:45:25 +01:00
} else {
2019-12-06 12:24:44 +01:00
sb . append ( " { \" zone \" : \" " + set . getInt ( " zone " ) + " \" } " ) ;
if ( ! set . isLast ( ) ) {
sb . append ( " , " ) ;
}
}
prev = set . getInt ( " zone " ) ;
}
} catch ( SQLException e ) {
e . printStackTrace ( ) ;
}
sb . append ( " ] " ) ;
sb . append ( " , \" query \" : \" ok \" " ) ;
sb . append ( " } " ) ;
break ;
2019-12-06 16:45:25 +01:00
case " newdate " :
sb . append ( " { " ) ;
Log . debug ( params ) ;
ResultSet seti = jdcb . executeQuery ( " select * from cities WHERE `name`=' " + params . get ( " cityname " ) + " ' AND `zone`=' " + params . get ( " zone " ) + " ' AND `wastetype`=' " + params . get ( " wastetype " ) + " ' " ) ;
try {
seti . last ( ) ;
if ( seti . getRow ( ) = = 1 ) {
Log . debug ( seti . getInt ( " id " ) ) ;
int status = jdcb . executeUpdate ( " INSERT INTO `pickupdates`(`citywastezoneid`, `pickupdate`) VALUES (' " + seti . getInt ( " id " ) + " ',' " + params . get ( " date " ) + " ') " ) ;
if ( status = = 1 ) {
sb . append ( " \" status \" : \" success \" " ) ;
} else {
sb . append ( " \" status \" : \" error \" " ) ;
}
} else {
Log . warning ( " city doesnt exist! " ) ;
sb . append ( " \" status \" : \" citydoesntexist \" " ) ;
}
} catch ( SQLException e ) {
e . printStackTrace ( ) ;
}
sb . append ( " , \" query \" : \" ok \" " ) ;
sb . append ( " } " ) ;
break ;
2019-12-06 12:24:44 +01:00
}
return sb . toString ( ) ;
}
}