diff --git a/src/main/java/org/nutricraft/Model/LogModel.java b/src/main/java/org/nutricraft/Model/LogModel.java new file mode 100644 index 0000000000000000000000000000000000000000..2e21036518e90c6841569939f7ec7c62be0ad2aa --- /dev/null +++ b/src/main/java/org/nutricraft/Model/LogModel.java @@ -0,0 +1,25 @@ +package org.nutricraft.Model; + +import org.nutricraft.Database.Database; + +import java.sql.Statement; + +public class LogModel extends Database { + + public LogModel() { + super(); + } + + public String InsertLog(String desc, String endpoint, String ip) { + try { + Statement statement = this.connection.createStatement(); + String query = "INSERT INTO logging (description, endpoint, ip) VALUES ('" + desc + "', '" + endpoint + "', '" + ip + "')"; + statement.executeUpdate(query); + } catch (Exception e) { + e.printStackTrace(); + return "Failed to insert log"; + } + return "Successfully inserted log"; + } + +} diff --git a/src/main/java/org/nutricraft/Services/CoinServices.java b/src/main/java/org/nutricraft/Services/CoinServices.java new file mode 100644 index 0000000000000000000000000000000000000000..096cb2dbd59ceb950c224103070125973ea46e32 --- /dev/null +++ b/src/main/java/org/nutricraft/Services/CoinServices.java @@ -0,0 +1,4 @@ +package org.nutricraft.Services; + +public interface CoinServices { +} diff --git a/src/main/java/org/nutricraft/Services/CoinServicesImpl.java b/src/main/java/org/nutricraft/Services/CoinServicesImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..cb0f3f7e6962d9413b04324cb6c95cd43f55b526 --- /dev/null +++ b/src/main/java/org/nutricraft/Services/CoinServicesImpl.java @@ -0,0 +1,4 @@ +package org.nutricraft.Services; + +public class CoinServicesImpl implements CoinServices{ +} diff --git a/src/main/java/org/nutricraft/Services/LevelServices.java b/src/main/java/org/nutricraft/Services/LevelServices.java new file mode 100644 index 0000000000000000000000000000000000000000..50dfbc9d798b07437226689fb2cf99f188964472 --- /dev/null +++ b/src/main/java/org/nutricraft/Services/LevelServices.java @@ -0,0 +1,5 @@ +package org.nutricraft.Services; + +public interface LevelServices { + +} diff --git a/src/main/java/org/nutricraft/Services/LevelServicesImpl.java b/src/main/java/org/nutricraft/Services/LevelServicesImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..8452c598b94de1b73e562df86b0ee628e5352d9d --- /dev/null +++ b/src/main/java/org/nutricraft/Services/LevelServicesImpl.java @@ -0,0 +1,5 @@ +package org.nutricraft.Services; + +public class LevelServicesImpl implements LevelServices { + +} diff --git a/src/main/java/org/nutricraft/Services/SubscriptionServices.java b/src/main/java/org/nutricraft/Services/SubscriptionServices.java index 7b75db2823798ced361652454e6e6d57fe3dbc05..814f636e5a58f311ea65d9fde3d4920400c12890 100644 --- a/src/main/java/org/nutricraft/Services/SubscriptionServices.java +++ b/src/main/java/org/nutricraft/Services/SubscriptionServices.java @@ -7,8 +7,17 @@ import javax.jws.WebService; @WebService public interface SubscriptionServices { @WebMethod - public String newSubscription(); + public String newSubscription(String idCreator, int idSubscriber); @WebMethod - public String checkSubscription(); + public Boolean checkSubscription(String idCreator, int idSubscriber); + + @WebMethod + public String getSubscribers(String idCreator); + + @WebMethod + public String getCreators(int idSubscriber); + + @WebMethod + public String getAllSubscription(); } diff --git a/src/main/java/org/nutricraft/Services/SubscriptionServicesImpl.java b/src/main/java/org/nutricraft/Services/SubscriptionServicesImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..def84236c7609214530ec2f72465d6a5d528ce0d --- /dev/null +++ b/src/main/java/org/nutricraft/Services/SubscriptionServicesImpl.java @@ -0,0 +1,150 @@ +package org.nutricraft.Services; + +import org.nutricraft.Database.Database; +import org.nutricraft.Model.LogModel; + +import javax.annotation.Resource; +import javax.jws.WebMethod; +import javax.jws.WebService; +import javax.xml.ws.handler.MessageContext; +import javax.xml.ws.spi.http.HttpExchange; +import javax.xml.ws.WebServiceContext; +import java.sql.*; + +@WebService +public class SubscriptionServicesImpl implements SubscriptionServices{ + + @Resource + public WebServiceContext wsContext; + @WebMethod + public String newSubscription(String idCreator, int idSubscriber){ + try { + Database db = new Database(); + Connection connection = db.getConn(); + Statement statement = connection.createStatement(); + String query = "INSERT INTO subscribers (id_creator, id_user) VALUES ('" + idCreator + "', '" + idSubscriber + "')"; + statement.executeUpdate(query); + } catch (Exception e) { + e.printStackTrace(); + } + return "newSubs"; + } + @WebMethod + public Boolean checkSubscription(String idCreator, int idSubscriber){ + try { + Database db = new Database(); + Connection connection = db.getConn(); + Statement statement = connection.createStatement(); + String query = "SELECT * FROM subscribers WHERE id_creator = '" + idCreator + "' AND id_user = '" + idSubscriber + "'"; + ResultSet result = statement.executeQuery(query); + if (result.next()) { + return true; + } + }catch (Exception e){ + e.printStackTrace(); + } + return false; + } + + @WebMethod + public String getSubscribers(String idCreator){ + try { + Database db = new Database(); + Connection connection = db.getConn(); + Statement statement = connection.createStatement(); + String query = "SELECT id_user FROM subscribers WHERE id_creator = '" + idCreator + "'"; + ResultSet result = statement.executeQuery(query); + while (result.next()) { + int id = result.getInt("id_user"); + System.out.println("id: " + id); + } + }catch (Exception e){ + e.printStackTrace(); + } + return "getSubs"; + } + + @WebMethod + public String getCreators(int idSubscriber){ + try { + Database db = new Database(); + Connection connection = db.getConn(); + Statement statement = connection.createStatement(); + String query = "SELECT id_creator FROM subscribers WHERE id_user = '" + idSubscriber + "'"; + ResultSet result = statement.executeQuery(query); + while (result.next()) { + String id = result.getString("id_creator"); + System.out.println("id: " + id); + } + }catch (Exception e){ + e.printStackTrace(); + } + return "getCreators"; + } + + @WebMethod + public String getAllSubscription() { + try { + Database db = new Database(); + Connection connection = db.getConn(); + Statement statement = connection.createStatement(); + String query = "SELECT * FROM subscribers"; + ResultSet result = statement.executeQuery(query); + while (result.next()) { + int id = result.getInt("id"); + String idCreator = result.getString("id_creator"); + int idSubscriber = result.getInt("id_users"); + System.out.println("id: " + id + " id_creator: " + idCreator + " id_user: " + idSubscriber); + } + } catch (Exception e) { + e.printStackTrace(); + } + + return "tea"; + } + + public Boolean validateApiKey() { + String[] API_KEYS = { "PremiumApp", "Postman", "RestClient", "RegularApp" }; + MessageContext mc = wsContext.getMessageContext(); + HttpExchange exchange = (HttpExchange) mc.get("com.sun.xml.ws.http.exchange"); + String apiKey = exchange.getRequestHeaders().getFirst("X-API-KEY"); + if (apiKey == null) { + return false; + } else if (apiKey.equals(API_KEYS[0]) || apiKey.equals(API_KEYS[1]) || apiKey.equals(API_KEYS[2]) + || apiKey.equals(API_KEYS[3])) { + return true; + } else { + return false; + } + } + + public void log(String description) { + MessageContext msgContext = wsContext.getMessageContext(); + HttpExchange httpExchange = (HttpExchange) msgContext.get("com.sun.xml.ws.http.exchange"); + String ip = httpExchange.getRemoteAddress().getAddress().getHostAddress(); + String endpoint = httpExchange.getRequestURI().toString(); + LogModel logModel = new LogModel(); + String apiKey = httpExchange.getRequestHeaders().getFirst("X-API-KEY"); + String desc = apiKey + ": " + description; + logModel.InsertLog(desc, endpoint, ip); + } +} + +// Database db = new Database(); +// Connection connection = db.getConn(); +// try{ +// Statement statement = connection.createStatement(); +// String query = "SELECT * FROM logging"; +// ResultSet result = statement.executeQuery(query); +// while (result.next()) { +// int id = result.getInt("id"); +// String desc = result.getString("description"); +// String ip = result.getString("ip"); +// String endpoint = result.getString("endpoint"); +// String date = result.getString("date"); + +// System.out.println("id: " + id+ " desc: " + desc + " ip: " + ip + " endpoint: " + endpoint + " date: " + date); +// } +// }catch (Exception e){ +// e.printStackTrace(); +// } \ No newline at end of file diff --git a/src/main/java/org/nutricraft/Services/SubscriptionServicesImplement.java b/src/main/java/org/nutricraft/Services/SubscriptionServicesImplement.java deleted file mode 100644 index 7cd8c3fb0f20e55f9e90d162af39f0b0e275b272..0000000000000000000000000000000000000000 --- a/src/main/java/org/nutricraft/Services/SubscriptionServicesImplement.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.nutricraft.Services; - -import javax.jws.WebMethod; -import javax.jws.WebService; - -@WebService -public class SubscriptionServicesImplement implements SubscriptionServices{ - @WebMethod - public String newSubscription(){ - return "newSubs"; - } - - @WebMethod - public String checkSubscription(){ - return "checkSubs"; - } -}