Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Showing
with 754 additions and 0 deletions
package com.adaapa.bean;
import java.io.Serializable;
public class LoginResponseBean implements Serializable {
public static Integer TOKEN_AGE_DEFAULT = 60 * 60 * 24 * 365;
private String status;
private String access_token;
private UserBean user_bean;
private Integer age;
public LoginResponseBean(String status, String access_token, Integer age, UserBean userBean) {
setStatus(status);
setAge(age);
setAccessToken(access_token);
setUserBean(userBean);
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getAccessToken() {
return access_token;
}
public void setAccessToken(String access_token) {
this.access_token = access_token;
}
public UserBean getUserBean() {
return user_bean;
}
public void setUserBean(UserBean userBean) {
this.user_bean = userBean;
}
}
package com.adaapa.bean;
import java.io.Serializable;
public class LogoutResponseBean implements Serializable {
private String status;
public LogoutResponseBean() {
this.status = status;
}
public LogoutResponseBean(String status) {
this.status = status;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
package com.adaapa.bean;
import java.sql.Timestamp;
public class OrderBean {
private Integer id;
private Integer userId;
private Integer driverId;
private Double rating;
private String pickup;
private String destination;
private String comment;
private String image;
private String name;
private String username;
private Timestamp timestamp;
public Timestamp getTimestamp() {
return timestamp;
}
public void setTimestamp(Timestamp timestamp) {
this.timestamp = timestamp;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Double getRating() {
return rating;
}
public void setRating(Double rating) {
this.rating = rating;
}
public Integer getDriverId() {
return driverId;
}
public void setDriverId(Integer driverId) {
this.driverId = driverId;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getDestination() {
return destination;
}
public void setDestination(String destination) {
this.destination = destination;
}
public String getPickup() {
return pickup;
}
public void setPickup(String pickup) {
this.pickup = pickup;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String name) {
this.username = username;
}
}
package com.adaapa.bean;
import java.io.Serializable;
public class PreferredLocationBean implements Serializable {
Integer position;
String location;
public Integer getPosition() {
return position;
}
public void setPosition(Integer position) {
this.position = position;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
package com.adaapa.bean;
public class TokenVerificationResponse {
public static final String TOKEN_VALID = "valid";
public static final String TOKEN_INVALID = "invalid";
private String status;
private UserBean user;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public UserBean getUser() {
return user;
}
public void setUser(UserBean user) {
this.user = user;
}
}
package com.adaapa.bean;
import java.io.Serializable;
public class UserBean implements Serializable {
public Integer id;
public String name;
public String email;
public String username;
public String phoneNumber;
public Boolean isDriver;
public String image;
public String getName() {
return name;
}
public String getUsername() {
return username;
}
public String getPhoneNumber() {
return phoneNumber;
}
public Boolean getIsDriver() {
return isDriver;
}
public String getEmail() {
return email;
}
public String getImage() {
return image;
}
public Integer getId() {
return id;
}
}
package com.adaapa.bean;
import java.io.Serializable;
public class WebServiceBean implements Serializable {
public static final String STATUS_VALID = "valid";
public static final String STATUS_INVALID = "invalid";
private String status;
private String body;
public WebServiceBean(String status, String body) {
setBody(body);
setStatus(status);
}
public WebServiceBean() {
//do nothing
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
}
package com.adaapa.databases;
import java.io.InputStream;
import java.util.Properties;
public class DatabaseConfiguration {
private String db_name;
private String db_host;
private String db_user;
private String db_pass;
public DatabaseConfiguration() {
try {
Properties prop = new Properties();
InputStream inp = this.getClass().getResourceAsStream("/config/db.properties");
prop.load(inp);
db_name = prop.getProperty("DB_NAME");
db_host = prop.getProperty("DB_HOST");
db_pass = prop.getProperty("DB_PASS");
db_user = prop.getProperty("DB_USER");
} catch (Exception e) {
e.printStackTrace();
}
}
public String getHost() {
return db_host;
}
public String getName() {
return db_name;
}
public String getPass() {
return db_pass;
}
public String getUser() {
return db_user;
}
}
package com.adaapa.databases;
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnector {
private static DatabaseConnector _instance;
private Connection conn = null;
private DatabaseConnector() {
DatabaseConfiguration config;
config = new DatabaseConfiguration();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(
"jdbc:mysql://" + config.getHost() + "/" + config.getName(), config.getUser(), config.getPass());
} catch (Exception e) {
e.printStackTrace();
}
}
public static DatabaseConnector getInstance() {
if (_instance == null) {
_instance = new DatabaseConnector();
}
return _instance;
}
public Connection getConn() {
return conn;
}
}
package com.adaapa.models;
import com.adaapa.databases.DatabaseConnector;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public abstract class BaseModel {
protected Connection db;
protected String tableName;
protected String primaryKey;
public BaseModel(String tableName, String primaryKey) {
db = DatabaseConnector.getInstance().getConn();
this.tableName = tableName;
this.primaryKey = primaryKey;
}
public ResultSet query(String query) throws SQLException {
Statement stm = db.createStatement();
stm.executeQuery(query);
return stm.getResultSet();
}
public ResultSet queryUpdate(String query) throws SQLException {
Statement stm = db.createStatement();
stm.executeUpdate(query);
return stm.getResultSet();
}
public ResultSet find(Integer id) throws SQLException {
return query(String.format("SELECT * FROM %s WHERE %s = %d", tableName, primaryKey, id));
}
}
src/main/resources/config/domain.properties
plugins {
id 'java'
id 'war'
id 'org.akhikhl.gretty'
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':SharedLibrary')
// https://mvnrepository.com/artifact/junit/junit
testCompile 'junit:junit:4.12'
// https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api
providedCompile 'javax.servlet:javax.servlet-api:4.0.0'
// https://mvnrepository.com/artifact/com.google.code.gson/gson
compile 'com.google.code.gson:gson:2.8.2'
}
package com.adaapa.adaojek.middlewares;
import com.adaapa.adaojek.stub.ApplicationCookie;
import com.google.gson.Gson;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Base64;
public class CookieCheck {
public static ApplicationCookie getCookie(HttpServletRequest req) {
ApplicationCookie cookie = null;
Gson gson = new Gson();
for (Cookie item : req.getCookies()) {
if (item.getName().equals("adaapa")) {
cookie = gson.fromJson(new String(Base64.getDecoder().decode(item.getValue())), ApplicationCookie.class);
break;
}
}
return cookie;
}
public static Boolean redirectIfTokenNotFound(HttpServletRequest req, HttpServletResponse resp, String redirectTo) throws IOException {
if (getCookie(req) == null) {
resp.sendRedirect(redirectTo);
return true;
}
return false;
}
public static Boolean redirectIfTokenFound(HttpServletRequest req, HttpServletResponse resp, String redirectTo) throws IOException {
if (getCookie(req) != null) {
resp.sendRedirect(redirectTo);
return true;
}
return false;
}
}
package com.adaapa.adaojek.services;
import java.io.InputStream;
import java.util.Properties;
public class DomainConfig {
private static final String file_name = "/config/domain.properties";
private static DomainConfig _instance = null;
private String is_domain;
private String ws_domain;
public DomainConfig() {
try {
Properties prop = new Properties();
InputStream inp = this.getClass().getResourceAsStream(file_name);
prop.load(inp);
is_domain = prop.getProperty("IDSERVICE_DOMAIN");
ws_domain = prop.getProperty("WEBSERVICE_DOMAIN");
} catch (Exception e) {
e.printStackTrace();
}
}
public static DomainConfig getInstance() {
if (_instance == null) {
_instance = new DomainConfig();
}
return _instance;
}
public String getISDomain() {
return is_domain;
}
public String getWSDomain() {
return ws_domain;
}
}
package com.adaapa.adaojek.services;
import java.awt.color.ProfileDataException;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class RequestSender {
public static String sendRequest(String url, String method, String contentType, String payload)
throws IOException, ProfileDataException {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestProperty("User-Agent", "JavaServlet");
con.setRequestProperty("Content-Type", contentType);
con.setDoOutput(true);
con.setRequestMethod(method);
DataOutputStream wr = new DataOutputStream(
con.getOutputStream());
wr.writeBytes(payload);
wr.flush();
wr.close();
con.connect();
StringBuffer response = new StringBuffer();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
return response.toString();
}
}
\ No newline at end of file
package com.adaapa.adaojek.services;
import com.adaapa.ojekservice.OjekOnline;
import com.adaapa.ojekservice.OjekOnlineService;
import java.net.MalformedURLException;
public class ServiceConnector {
private static ServiceConnector instance;
private static String CONTEXT_PATH = "/OjekOnline";
private static String WSDL_PATH = "?wsdl";
private static String SERVICE_NAMESPACE = "http://ojekservice.adaapa.com/";
private static String LOCAL_PATH = "OjekOnlineService";
private static OjekOnline serviceClass;
public ServiceConnector() throws MalformedURLException {
OjekOnlineService service = new OjekOnlineService();
serviceClass = service.getOjekOnlinePort();
}
public static OjekOnline getServiceClass() throws MalformedURLException {
if (serviceClass == null) {
instance = new ServiceConnector();
}
return serviceClass;
}
}
package com.adaapa.adaojek.servlets;
import com.adaapa.adaojek.middlewares.CookieCheck;
import com.adaapa.adaojek.services.ServiceConnector;
import com.adaapa.adaojek.stub.ApplicationCookie;
import com.adaapa.bean.UserBean;
import com.adaapa.bean.WebServiceBean;
import com.google.gson.Gson;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* Created by ireneedriadr on 11/21/17.
*/
public class ChatDriverServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (!CookieCheck.redirectIfTokenNotFound(req, resp, "logout")) {
String pickup = req.getParameter("pickUp");
String destination = req.getParameter("destination");
req.setAttribute("pickup", pickup);
req.setAttribute("destination", destination);
ApplicationCookie cookie = CookieCheck.getCookie(req);
req.setAttribute("user", cookie.getUsername());
Gson gson = new Gson();
String response = ServiceConnector.getServiceClass().
findDriverByUsername(cookie.getToken(), req.getParameter("driverId"));
WebServiceBean wsBean = gson.fromJson(response, WebServiceBean.class);
if (wsBean.getStatus().equals(WebServiceBean.STATUS_INVALID)) {
resp.sendRedirect("logout");
} else {
UserBean ubean = gson.fromJson(wsBean.getBody(), UserBean.class);
req.setAttribute("driverProfile", ubean);
req.getRequestDispatcher("WEB-INF/chat_driver.jsp").forward(req, resp);
}
}
}
}
package com.adaapa.adaojek.servlets;
import com.adaapa.adaojek.middlewares.CookieCheck;
import com.adaapa.adaojek.services.ServiceConnector;
import com.adaapa.adaojek.stub.ApplicationCookie;
import com.adaapa.bean.OrderBean;
import com.adaapa.bean.UserBean;
import com.adaapa.bean.WebServiceBean;
import com.adaapa.ojekservice.OjekOnline;
import com.google.gson.Gson;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class CompleteOrderServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (!CookieCheck.redirectIfTokenNotFound(req, resp, "logout")) {
String pickup = req.getParameter("pickUp");
String destination = req.getParameter("destination");
req.setAttribute("pickup", pickup);
req.setAttribute("destination", destination);
ApplicationCookie cookie = CookieCheck.getCookie(req);
req.setAttribute("user", cookie.getUsername());
Gson gson = new Gson();
String response = ServiceConnector.getServiceClass().
findDriverByUsername(cookie.getToken(), req.getParameter("driverId"));
WebServiceBean wsBean = gson.fromJson(response, WebServiceBean.class);
if (wsBean.getStatus().equals(WebServiceBean.STATUS_INVALID)) {
resp.sendRedirect("logout");
} else {
UserBean ubean = gson.fromJson(wsBean.getBody(), UserBean.class);
req.setAttribute("driverProfile", ubean);
req.getRequestDispatcher("WEB-INF/complete_order.jsp").forward(req, resp);
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (!CookieCheck.redirectIfTokenNotFound(req, resp, "login")) {
OrderBean orderBean = new OrderBean();
orderBean.setDriverId(Integer.parseInt(req.getParameter("driverId")));
orderBean.setPickup(req.getParameter("pickUp"));
orderBean.setComment(req.getParameter("comment"));
orderBean.setDestination(req.getParameter("destination"));
orderBean.setRating(Double.parseDouble(req.getParameter("rating")));
Gson gson = new Gson();
ApplicationCookie cookie = CookieCheck.getCookie(req);
OjekOnline service = ServiceConnector.getServiceClass();
WebServiceBean wsBean = gson.fromJson(service.completeOrder(cookie.getToken(), gson.toJson(orderBean)), WebServiceBean.class);
if (wsBean.getStatus().equals(WebServiceBean.STATUS_VALID)) {
resp.sendRedirect("history");
} else {
resp.sendRedirect("logout");
}
}
}
}
package com.adaapa.adaojek.servlets;
import com.adaapa.adaojek.middlewares.CookieCheck;
import com.adaapa.adaojek.services.ServiceConnector;
import com.adaapa.adaojek.stub.ApplicationCookie;
import com.adaapa.bean.WebServiceBean;
import com.adaapa.ojekservice.OjekOnline;
import com.google.gson.Gson;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class DeletePreferredLocationServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Integer position = Integer.parseInt(req.getParameter("position"));
if (!CookieCheck.redirectIfTokenNotFound(req, resp, "login")) {
OjekOnline service = ServiceConnector.getServiceClass();
ApplicationCookie cookie = CookieCheck.getCookie(req);
WebServiceBean response = new Gson().fromJson(service.deletePreferredLocation(cookie.getToken(), position), WebServiceBean.class);
if (response.getStatus().equals(WebServiceBean.STATUS_INVALID)) {
resp.sendRedirect("logout");
} else {
resp.sendRedirect("preferred_location");
}
}
}
}
package com.adaapa.adaojek.servlets;
import com.adaapa.adaojek.middlewares.CookieCheck;
import com.adaapa.adaojek.services.ServiceConnector;
import com.adaapa.adaojek.stub.ApplicationCookie;
import com.adaapa.bean.WebServiceBean;
import com.adaapa.ojekservice.OjekOnline;
import com.google.gson.Gson;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class DriverHideHistoryServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
if (!CookieCheck.redirectIfTokenNotFound(req, resp, "login")) {
Integer orderId = Integer.parseInt(req.getParameter("orderId"));
ApplicationCookie cookie = CookieCheck.getCookie(req);
OjekOnline service = ServiceConnector.getServiceClass();
WebServiceBean webServiceBean = new Gson().fromJson(service.hideDriverHistory(cookie.getToken(), orderId), WebServiceBean.class);
if (webServiceBean.getStatus().equals(WebServiceBean.STATUS_VALID)) {
resp.sendRedirect("driver_history");
} else {
resp.sendRedirect("logout");
}
}
}
}