diff --git a/.gitignore b/.gitignore index a2b7aa3f3d..a3bee0ca43 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ *.iml target/ .idea/ -Config.java +src/main/java/Config.java \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 100644 index 8a01a6b078..0000000000 --- a/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# Finish Up your Adlister - -Follow the instructions and suggestions in [here](https://java.codeup.com/java-iii/finish-the-adlister) - -## Final branch - -Use this master branch as a base for your future features, this branch already has all the necessary code implemented up to the lesson on passwords including it's solution. - -You might have to change the default branch in your own fork so you can have the master branch as the the default and merge your contributions into it. \ No newline at end of file diff --git a/migration.sql b/migration.sql deleted file mode 100644 index a70d2eab38..0000000000 --- a/migration.sql +++ /dev/null @@ -1,22 +0,0 @@ -USE adlister_db; - -DROP TABLE IF EXISTS ads; -DROP TABLE IF EXISTS users; - -CREATE TABLE users ( - id INT UNSIGNED NOT NULL AUTO_INCREMENT, - username VARCHAR(240) NOT NULL, - email VARCHAR(240) NOT NULL, - password VARCHAR(255) NOT NULL, - PRIMARY KEY (id) -); - -CREATE TABLE ads ( - id INT UNSIGNED NOT NULL AUTO_INCREMENT, - user_id INT UNSIGNED NOT NULL, - title VARCHAR(240) NOT NULL, - description TEXT NOT NULL, - PRIMARY KEY (id), - FOREIGN KEY (user_id) REFERENCES users(id) - ON DELETE CASCADE -); diff --git a/pom.xml b/pom.xml index 22a2e9c039..c0a9baa62e 100644 --- a/pom.xml +++ b/pom.xml @@ -24,11 +24,6 @@ - - org.mindrot - jbcrypt - 0.3m - javax.servlet javax.servlet-api @@ -42,7 +37,13 @@ mysql mysql-connector-java - 6.0.5 + 8.0.23 + + + + org.mindrot + jbcrypt + 0.4 diff --git a/src/main/java/com/codeup/adlister/models/Ad.java b/src/main/java/Ad.java similarity index 96% rename from src/main/java/com/codeup/adlister/models/Ad.java rename to src/main/java/Ad.java index 9e9e02d87e..297fcd45c6 100644 --- a/src/main/java/com/codeup/adlister/models/Ad.java +++ b/src/main/java/Ad.java @@ -1,11 +1,8 @@ -package com.codeup.adlister.models; - public class Ad { private long id; private long userId; private String title; private String description; - public Ad(long id, long userId, String title, String description) { this.id = id; this.userId = userId; diff --git a/src/main/java/Ads.java b/src/main/java/Ads.java new file mode 100644 index 0000000000..0166496cef --- /dev/null +++ b/src/main/java/Ads.java @@ -0,0 +1,6 @@ +import java.util.List; + +public interface Ads { + List all(); + Long insert(Ad ad); +} diff --git a/src/main/java/com/codeup/adlister/controllers/AdsIndexServlet.java b/src/main/java/AdsIndexServlet.java similarity index 55% rename from src/main/java/com/codeup/adlister/controllers/AdsIndexServlet.java rename to src/main/java/AdsIndexServlet.java index 1763081228..08d02b8ec3 100644 --- a/src/main/java/com/codeup/adlister/controllers/AdsIndexServlet.java +++ b/src/main/java/AdsIndexServlet.java @@ -1,18 +1,20 @@ -package com.codeup.adlister.controllers; - -import com.codeup.adlister.dao.DaoFactory; - import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.Serializable; +import java.util.List; -@WebServlet(name = "controllers.AdsIndexServlet", urlPatterns = "/ads") +@WebServlet(name = "AdsIndexServlet", urlPatterns = "/ads") public class AdsIndexServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - request.setAttribute("ads", DaoFactory.getAdsDao().all()); - request.getRequestDispatcher("/WEB-INF/ads/index.jsp").forward(request, response); + + Ads adsDao = DaoFactory.getAdsDao(); + + List currentAds = adsDao.all(); + request.setAttribute("allAds", currentAds); + request.getRequestDispatcher("/ads/index.jsp").forward(request, response); } } diff --git a/src/main/java/com/codeup/adlister/controllers/CounterServlet.java b/src/main/java/CounterServlet.java similarity index 81% rename from src/main/java/com/codeup/adlister/controllers/CounterServlet.java rename to src/main/java/CounterServlet.java index f66c52d7aa..7beada9d5e 100644 --- a/src/main/java/com/codeup/adlister/controllers/CounterServlet.java +++ b/src/main/java/CounterServlet.java @@ -1,12 +1,10 @@ -package com.codeup.adlister.controllers; - import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -@WebServlet(name = "controllers.CounterServlet", urlPatterns = "/count") +@WebServlet(name = "CounterServlet", urlPatterns = "/count") public class CounterServlet extends HttpServlet { private int counter = 0; diff --git a/src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java b/src/main/java/CreateAdServlet.java similarity index 75% rename from src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java rename to src/main/java/CreateAdServlet.java index 38775bc6f7..47b5b00ded 100644 --- a/src/main/java/com/codeup/adlister/controllers/CreateAdServlet.java +++ b/src/main/java/CreateAdServlet.java @@ -1,9 +1,3 @@ -package com.codeup.adlister.controllers; - -import com.codeup.adlister.dao.DaoFactory; -import com.codeup.adlister.models.Ad; -import com.codeup.adlister.models.User; - import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -19,15 +13,15 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t return; } request.getRequestDispatcher("/WEB-INF/ads/create.jsp") - .forward(request, response); + .forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { User user = (User) request.getSession().getAttribute("user"); Ad ad = new Ad( - user.getId(), - request.getParameter("title"), - request.getParameter("description") + user.getId(), + request.getParameter("title"), + request.getParameter("description") ); DaoFactory.getAdsDao().insert(ad); response.sendRedirect("/ads"); diff --git a/src/main/java/DaoFactory.java b/src/main/java/DaoFactory.java new file mode 100644 index 0000000000..9d214b9567 --- /dev/null +++ b/src/main/java/DaoFactory.java @@ -0,0 +1,10 @@ +public class DaoFactory { + public static Ads adsDao; + + public static Ads getAdsDao() { + if(adsDao == null) { + adsDao = new ListAdsDao(); + } + return adsDao; + } +} diff --git a/src/main/java/HelloWorldServlet1.java b/src/main/java/HelloWorldServlet1.java new file mode 100644 index 0000000000..25945c03cd --- /dev/null +++ b/src/main/java/HelloWorldServlet1.java @@ -0,0 +1,14 @@ +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(name = "HelloWorldServlet", urlPatterns = "/") +public class HelloWorldServlet1 extends HttpServlet { + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { +// response.getWriter().println("

Hello, World!

"); + request.getRequestDispatcher("/index.jsp").forward(request, response); + } +} diff --git a/src/main/java/ListAdsDao.java b/src/main/java/ListAdsDao.java new file mode 100644 index 0000000000..4371c012a1 --- /dev/null +++ b/src/main/java/ListAdsDao.java @@ -0,0 +1,58 @@ +import java.util.ArrayList; +import java.util.List; + +public class ListAdsDao implements Ads { + private List ads; + + public List all() { + if (ads == null) { + ads = generateAds(); + } + return ads; + } + + @Override + public Long insert(Ad ad) { + return null; + } + + // public Long insert(Ad ad) { +// if (ads == null) { +// ads = generateAds(); +// } +// +// ad.setId((long) ads.size()); +// ads.add(ad); +// return ad.getId(); +// } +// + private List generateAds() { + List ads = new ArrayList<>(); + ads.add(new Ad( + 1, + 1, + "playstation for sale", + "This is a slightly used playstation" + )); + ads.add(new Ad( + 2, + 1, + "Super Nintendo", + "Get your game on with this old-school classic!" + )); + ads.add(new Ad( + 3, + 2, + "Junior Java Developer Position", + "Minimum 7 years of experience required. You will be working in the scripting language for Java, JavaScript" + )); + ads.add(new Ad( + 4, + 2, + "JavaScript Developer needed", + "Must have strong Java skills" + )); + return ads; + } +} + diff --git a/src/main/java/LoginServlet.java b/src/main/java/LoginServlet.java new file mode 100644 index 0000000000..ef20ddd5dc --- /dev/null +++ b/src/main/java/LoginServlet.java @@ -0,0 +1,38 @@ +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(name = "LoginServlet", urlPatterns = "/login") +public class LoginServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { +// request.getRequestDispatcher("/login.jsp").forward(request, response); + if (request.getSession().getAttribute("user") != null) { + response.sendRedirect("/profile"); + return; + } + request.getRequestDispatcher("/login.jsp").forward(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { + String userName = request.getParameter("userName"); + String pass = request.getParameter("password"); +// if (userName.equals("admin") && pass.equals("password")) { +// response.sendRedirect("/profile"); +// } else { +// response.sendRedirect("/login"); +// } + boolean validAttempt = true; + if (validAttempt) { + // TODO: store the logged in user object in the session, instead of just the username + request.getSession().setAttribute("user", userName); + response.sendRedirect("/profile"); + } else { + response.sendRedirect("/login"); + } + } +} + diff --git a/src/main/java/com/codeup/adlister/controllers/LogoutServlet.java b/src/main/java/LogoutServlet.java similarity index 92% rename from src/main/java/com/codeup/adlister/controllers/LogoutServlet.java rename to src/main/java/LogoutServlet.java index e88f9d5241..ef991605fa 100644 --- a/src/main/java/com/codeup/adlister/controllers/LogoutServlet.java +++ b/src/main/java/LogoutServlet.java @@ -1,5 +1,3 @@ -package com.codeup.adlister.controllers; - import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; @@ -13,4 +11,4 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t request.getSession().invalidate(); response.sendRedirect("/login"); } -} +} \ No newline at end of file diff --git a/src/main/java/PickColorServlet.java b/src/main/java/PickColorServlet.java new file mode 100644 index 0000000000..eefce76b7c --- /dev/null +++ b/src/main/java/PickColorServlet.java @@ -0,0 +1,19 @@ +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet("/pick-color") +public class PickColorServlet extends HttpServlet { + + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.getRequestDispatcher("/pick-color.jsp").forward(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String color = request.getParameter("color"); + response.sendRedirect("/view-color?viewcolor=" + color); //query string + } + } diff --git a/src/main/java/PizzaOrder.java b/src/main/java/PizzaOrder.java new file mode 100644 index 0000000000..b6404b0343 --- /dev/null +++ b/src/main/java/PizzaOrder.java @@ -0,0 +1,29 @@ +import javax.servlet.ServletException; +import javax.servlet.ServletOutputStream; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet(name = "PizzaOrder", urlPatterns = "/pizza-order") +public class PizzaOrder extends HttpServlet{ + + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + request.getRequestDispatcher("/pizza-order.jsp").forward(request, response); + } + + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + System.out.println(request.getParameter("crust-type")); + System.out.println(request.getParameter("sauce-type")); + String[] toppings = request.getParameterValues("toppings"); + for(String topping : toppings){ + System.out.println(topping); + System.out.println(" "); + } + System.out.println(" "); + System.out.println(request.getParameter("address")); + response.sendRedirect("/"); + } +} diff --git a/src/main/java/com/codeup/adlister/models/User.java b/src/main/java/User.java similarity index 84% rename from src/main/java/com/codeup/adlister/models/User.java rename to src/main/java/User.java index e43bc0dc81..3015280efe 100644 --- a/src/main/java/com/codeup/adlister/models/User.java +++ b/src/main/java/User.java @@ -1,6 +1,4 @@ -package com.codeup.adlister.models; - -import com.codeup.adlister.util.Password; +import sun.security.util.Password; public class User { private long id; @@ -8,12 +6,8 @@ public class User { private String email; private String password; - public User() {} + public User() { - public User(String username, String email, String password) { - this.username = username; - this.email = email; - setPassword(password); } public User(long id, String username, String email, String password) { @@ -23,6 +17,14 @@ public User(long id, String username, String email, String password) { this.password = password; } + public User(String username, String email, String password) { + this.username = username; + this.email = email; + this.password = password; + } + + + public long getId() { return id; } @@ -52,6 +54,6 @@ public String getPassword() { } public void setPassword(String password) { - this.password = Password.hash(password); + this.password = password; } } diff --git a/src/main/java/ViewColorServlet.java b/src/main/java/ViewColorServlet.java new file mode 100644 index 0000000000..46806696d3 --- /dev/null +++ b/src/main/java/ViewColorServlet.java @@ -0,0 +1,16 @@ +import javax.servlet.ServletException; +import javax.servlet.annotation.WebServlet; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@WebServlet("/view-color") +public class ViewColorServlet extends HttpServlet { + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + String color = request.getParameter("viewcolor"); //?viewcolor={grabthevaluehere} + request.setAttribute("viewColor", color); + request.getRequestDispatcher("/view-color.jsp").forward(request, response); + + } +} diff --git a/src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java b/src/main/java/ViewProfileServlet.java similarity index 55% rename from src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java rename to src/main/java/ViewProfileServlet.java index e1b8941067..89ebe68a78 100644 --- a/src/main/java/com/codeup/adlister/controllers/ViewProfileServlet.java +++ b/src/main/java/ViewProfileServlet.java @@ -1,5 +1,3 @@ -package com.codeup.adlister.controllers; - import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; @@ -7,13 +5,10 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; -@WebServlet(name = "controllers.ViewProfileServlet", urlPatterns = "/profile") +@WebServlet(name = "ViewProfileServlet", urlPatterns = "/profile") public class ViewProfileServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (request.getSession().getAttribute("user") == null) { - response.sendRedirect("/login"); - return; - } - request.getRequestDispatcher("/WEB-INF/profile.jsp").forward(request, response); + request.getRequestDispatcher("/profile.jps").forward(request + , response); } } diff --git a/src/main/java/com/codeup/adlister/controllers/HelloWorldServlet.java b/src/main/java/com/codeup/adlister/controllers/HelloWorldServlet.java deleted file mode 100644 index 4ab9b9da70..0000000000 --- a/src/main/java/com/codeup/adlister/controllers/HelloWorldServlet.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.codeup.adlister.controllers; - -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -@WebServlet(name = "controllers.HelloWorldServlet", urlPatterns = "/") -public class HelloWorldServlet extends HttpServlet { - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { - response.getWriter().println("

Hello, World!

"); - } -} diff --git a/src/main/java/com/codeup/adlister/controllers/LoginServlet.java b/src/main/java/com/codeup/adlister/controllers/LoginServlet.java deleted file mode 100644 index e5c52723a2..0000000000 --- a/src/main/java/com/codeup/adlister/controllers/LoginServlet.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.codeup.adlister.controllers; - -import com.codeup.adlister.dao.DaoFactory; -import com.codeup.adlister.models.User; -import com.codeup.adlister.util.Password; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -@WebServlet(name = "controllers.LoginServlet", urlPatterns = "/login") -public class LoginServlet extends HttpServlet { - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - if (request.getSession().getAttribute("user") != null) { - response.sendRedirect("/profile"); - return; - } - request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { - String username = request.getParameter("username"); - String password = request.getParameter("password"); - User user = DaoFactory.getUsersDao().findByUsername(username); - - if (user == null) { - response.sendRedirect("/login"); - return; - } - - boolean validAttempt = Password.check(password, user.getPassword()); - - if (validAttempt) { - request.getSession().setAttribute("user", user); - response.sendRedirect("/profile"); - } else { - response.sendRedirect("/login"); - } - } -} diff --git a/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java b/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java deleted file mode 100644 index e1e997c17a..0000000000 --- a/src/main/java/com/codeup/adlister/controllers/RegisterServlet.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.codeup.adlister.controllers; - -import com.codeup.adlister.dao.DaoFactory; -import com.codeup.adlister.models.User; - -import javax.servlet.ServletException; -import javax.servlet.annotation.WebServlet; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -@WebServlet(name = "controllers.RegisterServlet", urlPatterns = "/register") -public class RegisterServlet extends HttpServlet { - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - request.getRequestDispatcher("/WEB-INF/register.jsp").forward(request, response); - } - - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { - String username = request.getParameter("username"); - String email = request.getParameter("email"); - String password = request.getParameter("password"); - String passwordConfirmation = request.getParameter("confirm_password"); - - // validate input - boolean inputHasErrors = username.isEmpty() - || email.isEmpty() - || password.isEmpty() - || (! password.equals(passwordConfirmation)); - - if (inputHasErrors) { - response.sendRedirect("/register"); - return; - } - - // create and save a new user - User user = new User(username, email, password); - DaoFactory.getUsersDao().insert(user); - response.sendRedirect("/login"); - } -} diff --git a/src/main/java/com/codeup/adlister/dao/Ads.java b/src/main/java/com/codeup/adlister/dao/Ads.java deleted file mode 100644 index 79dc59f484..0000000000 --- a/src/main/java/com/codeup/adlister/dao/Ads.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.codeup.adlister.dao; - -import com.codeup.adlister.models.Ad; - -import java.util.List; - -public interface Ads { - // get a list of all the ads - List all(); - // insert a new ad and return the new ad's id - Long insert(Ad ad); -} diff --git a/src/main/java/com/codeup/adlister/dao/DaoFactory.java b/src/main/java/com/codeup/adlister/dao/DaoFactory.java deleted file mode 100644 index e002140f85..0000000000 --- a/src/main/java/com/codeup/adlister/dao/DaoFactory.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.codeup.adlister.dao; - -public class DaoFactory { - private static Ads adsDao; - private static Users usersDao; - private static Config config = new Config(); - - public static Ads getAdsDao() { - if (adsDao == null) { - adsDao = new MySQLAdsDao(config); - } - return adsDao; - } - - public static Users getUsersDao() { - if (usersDao == null) { - usersDao = new MySQLUsersDao(config); - } - return usersDao; - } -} diff --git a/src/main/java/com/codeup/adlister/dao/ListAdsDao.java b/src/main/java/com/codeup/adlister/dao/ListAdsDao.java deleted file mode 100644 index 8d3baaa369..0000000000 --- a/src/main/java/com/codeup/adlister/dao/ListAdsDao.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.codeup.adlister.dao; - -import com.codeup.adlister.models.Ad; - -import java.util.ArrayList; -import java.util.List; - -public class ListAdsDao implements Ads { - private List ads; - - public List all() { - if (ads == null) { - ads = generateAds(); - } - return ads; - } - - public Long insert(Ad ad) { - // make sure we have ads - if (ads == null) { - ads = generateAds(); - } - // we'll assign an "id" here based on the size of the ads list - // really the dao would handle this - ad.setId((long) ads.size()); - ads.add(ad); - return ad.getId(); - } - - private List generateAds() { - List ads = new ArrayList<>(); - ads.add(new Ad( - 1, - 1, - "playstation for sale", - "This is a slightly used playstation" - )); - ads.add(new Ad( - 2, - 1, - "Super Nintendo", - "Get your game on with this old-school classic!" - )); - ads.add(new Ad( - 3, - 2, - "Junior Java Developer Position", - "Minimum 7 years of experience required. You will be working in the scripting language for Java, JavaScript" - )); - ads.add(new Ad( - 4, - 2, - "JavaScript Developer needed", - "Must have strong Java skills" - )); - return ads; - } -} diff --git a/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java b/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java deleted file mode 100644 index d58c45f985..0000000000 --- a/src/main/java/com/codeup/adlister/dao/MySQLAdsDao.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.codeup.adlister.dao; - -import com.codeup.adlister.models.Ad; -import com.mysql.cj.jdbc.Driver; - -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.sql.*; -import java.util.ArrayList; -import java.util.List; - -public class MySQLAdsDao implements Ads { - private Connection connection = null; - - public MySQLAdsDao(Config config) { - try { - DriverManager.registerDriver(new Driver()); - connection = DriverManager.getConnection( - config.getUrl(), - config.getUser(), - config.getPassword() - ); - } catch (SQLException e) { - throw new RuntimeException("Error connecting to the database!", e); - } - } - - @Override - public List all() { - PreparedStatement stmt = null; - try { - stmt = connection.prepareStatement("SELECT * FROM ads"); - ResultSet rs = stmt.executeQuery(); - return createAdsFromResults(rs); - } catch (SQLException e) { - throw new RuntimeException("Error retrieving all ads.", e); - } - } - - @Override - public Long insert(Ad ad) { - try { - String insertQuery = "INSERT INTO ads(user_id, title, description) VALUES (?, ?, ?)"; - PreparedStatement stmt = connection.prepareStatement(insertQuery, Statement.RETURN_GENERATED_KEYS); - stmt.setLong(1, ad.getUserId()); - stmt.setString(2, ad.getTitle()); - stmt.setString(3, ad.getDescription()); - stmt.executeUpdate(); - ResultSet rs = stmt.getGeneratedKeys(); - rs.next(); - return rs.getLong(1); - } catch (SQLException e) { - throw new RuntimeException("Error creating a new ad.", e); - } - } - - private Ad extractAd(ResultSet rs) throws SQLException { - return new Ad( - rs.getLong("id"), - rs.getLong("user_id"), - rs.getString("title"), - rs.getString("description") - ); - } - - private List createAdsFromResults(ResultSet rs) throws SQLException { - List ads = new ArrayList<>(); - while (rs.next()) { - ads.add(extractAd(rs)); - } - return ads; - } -} diff --git a/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java b/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java deleted file mode 100644 index 4e69e57044..0000000000 --- a/src/main/java/com/codeup/adlister/dao/MySQLUsersDao.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.codeup.adlister.dao; - -import com.codeup.adlister.models.User; -import com.mysql.cj.jdbc.Driver; - -import java.sql.*; - -public class MySQLUsersDao implements Users { - private Connection connection; - - public MySQLUsersDao(Config config) { - try { - DriverManager.registerDriver(new Driver()); - connection = DriverManager.getConnection( - config.getUrl(), - config.getUser(), - config.getPassword() - ); - } catch (SQLException e) { - throw new RuntimeException("Error connecting to the database!", e); - } - } - - - @Override - public User findByUsername(String username) { - String query = "SELECT * FROM users WHERE username = ? LIMIT 1"; - try { - PreparedStatement stmt = connection.prepareStatement(query); - stmt.setString(1, username); - return extractUser(stmt.executeQuery()); - } catch (SQLException e) { - throw new RuntimeException("Error finding a user by username", e); - } - } - - @Override - public Long insert(User user) { - String query = "INSERT INTO users(username, email, password) VALUES (?, ?, ?)"; - try { - PreparedStatement stmt = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); - stmt.setString(1, user.getUsername()); - stmt.setString(2, user.getEmail()); - stmt.setString(3, user.getPassword()); - stmt.executeUpdate(); - ResultSet rs = stmt.getGeneratedKeys(); - rs.next(); - return rs.getLong(1); - } catch (SQLException e) { - throw new RuntimeException("Error creating new user", e); - } - } - - private User extractUser(ResultSet rs) throws SQLException { - if (! rs.next()) { - return null; - } - return new User( - rs.getLong("id"), - rs.getString("username"), - rs.getString("email"), - rs.getString("password") - ); - } - -} diff --git a/src/main/java/com/codeup/adlister/dao/Users.java b/src/main/java/com/codeup/adlister/dao/Users.java deleted file mode 100644 index 62da74d20b..0000000000 --- a/src/main/java/com/codeup/adlister/dao/Users.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.codeup.adlister.dao; - -import com.codeup.adlister.models.User; - -import java.util.List; - -public interface Users { - User findByUsername(String username); - Long insert(User user); -} diff --git a/src/main/java/com/codeup/adlister/util/Password.java b/src/main/java/com/codeup/adlister/util/Password.java deleted file mode 100644 index 1ca33b20dd..0000000000 --- a/src/main/java/com/codeup/adlister/util/Password.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.codeup.adlister.util; - -import org.mindrot.jbcrypt.BCrypt; - -public class Password { - private static final int ROUNDS = 12; - - public static String hash(String password) { - return BCrypt.hashpw(password, BCrypt.gensalt(ROUNDS)); - } - - public static boolean check(String password, String hash) { - return BCrypt.checkpw(password, hash); - } -} diff --git a/src/main/java/model/Album.java b/src/main/java/model/Album.java new file mode 100644 index 0000000000..6a2a6d1825 --- /dev/null +++ b/src/main/java/model/Album.java @@ -0,0 +1,74 @@ +package model; + +import java.io.Serializable; +import java.util.Date; + +public class Album implements Serializable { + + private long id; + private String artist; + private String name; + private Date releaseDate; + private double sales; + private String genre; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getArtist() { + return artist; + } + + public void setArtist(String artist) { + this.artist = artist; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getReleaseDate() { + return releaseDate; + } + + public void setReleaseDate(Date releaseDate) { + this.releaseDate = releaseDate; + } + + public double getSales() { + return sales; + } + + public void setSales(double sales) { + this.sales = sales; + } + + public String getGenre() { + return genre; + } + + public void setGenre(String genre) { + this.genre = genre; + } + + public Album() { + } + + public Album(long id, String artist, String name, Date releaseDate, double sales, String genre) { + this.id = id; + this.artist = artist; + this.name = name; + this.releaseDate = releaseDate; + this.sales = sales; + this.genre = genre; + } +} diff --git a/src/main/java/model/Author.java b/src/main/java/model/Author.java new file mode 100644 index 0000000000..3ce4115ccb --- /dev/null +++ b/src/main/java/model/Author.java @@ -0,0 +1,43 @@ +package model; + +import java.io.Serializable; + +public class Author implements Serializable { + + private long id; + private String firstName; + private String lastName; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public Author() { + } + + public Author(long id, String firstName, String lastName) { + this.id = id; + this.firstName = firstName; + this.lastName = lastName; + } +} diff --git a/src/main/java/model/BeanTest.java b/src/main/java/model/BeanTest.java new file mode 100644 index 0000000000..0d33b4d0f1 --- /dev/null +++ b/src/main/java/model/BeanTest.java @@ -0,0 +1,31 @@ +package model; +import model.Album; + +import java.util.ArrayList; +import java.util.Date; + +public class BeanTest { + public static void main(String[] args) { + Date nevermind = new Date(1991, 9, 24); + Album Nirvana = new Album(1, "Nirvana", "Nevermind", nevermind, 2.2, "Grunge"); + + Quote LaoTzuQuote = new Quote(1, "The journey of a thousand miles begins with one step.", "Lao Tzu"); + Author LaoTzu = new Author(1, "Lao", "Tzu"); + + Quote NietzscheQuote = new Quote(2, "This what does not kill us makes us stronger.", "Nietzsche"); + Author Nietzsche = new Author(2, "Friedrich", "Nietzche"); + + Quote JoeKennedyQuote = new Quote(3, "When the going gets tough, the though get going.", "Joe Kennedy"); + Author JoeKennedy = new Author(3, "Joe", "Kennedy"); + + ArrayList quotes = new ArrayList<>(); + quotes.add(LaoTzuQuote); + quotes.add(NietzscheQuote); + quotes.add(JoeKennedyQuote); + + for (Quote quote : quotes){ + System.out.println(quote.getContent()); + System.out.println(quote.getAuthor()); + } + } +} diff --git a/src/main/java/model/Quote.java b/src/main/java/model/Quote.java new file mode 100644 index 0000000000..fff2bda6de --- /dev/null +++ b/src/main/java/model/Quote.java @@ -0,0 +1,43 @@ +package model; + +import java.io.Serializable; + +public class Quote implements Serializable { + + private long id; + private String content; + private String author; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public Quote(){ + + } + public Quote(long id, String content, String author) { + this.id = id; + this.content = content; + this.author = author; + } +} diff --git a/src/main/webapp/WEB-INF/ads/create.jsp b/src/main/webapp/WEB-INF/ads/create.jsp deleted file mode 100644 index f6332692f7..0000000000 --- a/src/main/webapp/WEB-INF/ads/create.jsp +++ /dev/null @@ -1,24 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - -
-

Create a new Ad

-
-
- - -
-
- - -
- -
-
- - diff --git a/src/main/webapp/WEB-INF/ads/index.jsp b/src/main/webapp/WEB-INF/ads/index.jsp deleted file mode 100644 index 6f4371f0bb..0000000000 --- a/src/main/webapp/WEB-INF/ads/index.jsp +++ /dev/null @@ -1,24 +0,0 @@ -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - - - -
-

Here Are all the ads!

- - -
-

${ad.title}

-

${ad.description}

-
-
-
- - - diff --git a/src/main/webapp/WEB-INF/login.jsp b/src/main/webapp/WEB-INF/login.jsp deleted file mode 100644 index 83ce2d0a1f..0000000000 --- a/src/main/webapp/WEB-INF/login.jsp +++ /dev/null @@ -1,25 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - - -
-

Please Log In

-
-
- - -
-
- - -
- -
-
- - diff --git a/src/main/webapp/WEB-INF/partials/head.jsp b/src/main/webapp/WEB-INF/partials/head.jsp deleted file mode 100644 index a33443d65c..0000000000 --- a/src/main/webapp/WEB-INF/partials/head.jsp +++ /dev/null @@ -1,2 +0,0 @@ -${param.title} - diff --git a/src/main/webapp/WEB-INF/profile.jsp b/src/main/webapp/WEB-INF/profile.jsp deleted file mode 100644 index 05e3fa7a91..0000000000 --- a/src/main/webapp/WEB-INF/profile.jsp +++ /dev/null @@ -1,16 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - - - -
-

Welcome, ${sessionScope.user.username}!

-
- - - diff --git a/src/main/webapp/WEB-INF/register.jsp b/src/main/webapp/WEB-INF/register.jsp deleted file mode 100644 index 4b64e10a43..0000000000 --- a/src/main/webapp/WEB-INF/register.jsp +++ /dev/null @@ -1,33 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - - - - - - -
-

Please fill in your information.

-
-
- - -
-
- - -
-
- - -
-
- - -
- -
-
- - diff --git a/src/main/webapp/ads/index.jsp b/src/main/webapp/ads/index.jsp new file mode 100644 index 0000000000..9ee4fe325f --- /dev/null +++ b/src/main/webapp/ads/index.jsp @@ -0,0 +1,28 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + + + +

Advertisements

+
+

All ads:

+ + +
${ad.getTitle()}
+

${ad.getDesciption()}

+
+<%-- --%> +<%--
--%> +<%--

${ad.title}

--%> +<%--

${ad.description}

--%> +<%--
--%> +<%--
--%> +
+ + + diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp index 68cf346ec9..2e125edaf6 100644 --- a/src/main/webapp/index.jsp +++ b/src/main/webapp/index.jsp @@ -2,14 +2,14 @@ <%@ page contentType="text/html;charset=UTF-8" language="java" %> - - - + <%= "some title" %> - -
-

Welcome to the Adlister!

-
+ +

Variable names should be very descriptive

+
+ +

single letter variable names are good

+
diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp new file mode 100644 index 0000000000..cafb8c18fa --- /dev/null +++ b/src/main/webapp/login.jsp @@ -0,0 +1,33 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + + + + + +
+<%--
--%> +
+
+

This is where you login

+
+
+ Username: + +
+
+ Password: + +
+
+ +<%--
--%> +
+
+
+ + diff --git a/src/main/webapp/partials/head.jsp b/src/main/webapp/partials/head.jsp new file mode 100644 index 0000000000..41d661ae32 --- /dev/null +++ b/src/main/webapp/partials/head.jsp @@ -0,0 +1,10 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + ${param.title} + + + + + + diff --git a/src/main/webapp/WEB-INF/partials/navbar.jsp b/src/main/webapp/partials/navbar.jsp similarity index 98% rename from src/main/webapp/WEB-INF/partials/navbar.jsp rename to src/main/webapp/partials/navbar.jsp index 8e1f98f662..c1079b9453 100644 --- a/src/main/webapp/WEB-INF/partials/navbar.jsp +++ b/src/main/webapp/partials/navbar.jsp @@ -10,4 +10,4 @@ - + \ No newline at end of file diff --git a/src/main/webapp/pick-color.jsp b/src/main/webapp/pick-color.jsp new file mode 100644 index 0000000000..c188fb91fc --- /dev/null +++ b/src/main/webapp/pick-color.jsp @@ -0,0 +1,15 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Pick Color + + + +

Pick a Color:

+
+ + +
+ + + diff --git a/src/main/webapp/pizza-order.jsp b/src/main/webapp/pizza-order.jsp new file mode 100644 index 0000000000..ebb8fc9629 --- /dev/null +++ b/src/main/webapp/pizza-order.jsp @@ -0,0 +1,57 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + + + +
+
+
+
+

This is your pizza order:

+
+
+ Crust type: + +
+
+ Sauce type: + +
+
+ Toppings: + + + Pepperoni + + + + Veggies + + + + Mushroom + +
+
+ Address + +
+ +
+
+
+ + + diff --git a/src/main/webapp/profile.jsp b/src/main/webapp/profile.jsp new file mode 100644 index 0000000000..6e03e6bdf7 --- /dev/null +++ b/src/main/webapp/profile.jsp @@ -0,0 +1,25 @@ +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%-- + Created by IntelliJ IDEA. + User: boryanadimova + Date: 6/14/22 + Time: 3:11 PM + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Profile + + +
+ Profile +
+ +

Profile

+
+ +

single letter variable names are good

+
+ + diff --git a/src/main/webapp/view-color.jsp b/src/main/webapp/view-color.jsp new file mode 100644 index 0000000000..e100713a0d --- /dev/null +++ b/src/main/webapp/view-color.jsp @@ -0,0 +1,9 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + View Color + + + + +