Ignore:
Timestamp:
01/10/25 00:33:50 (3 weeks ago)
Author:
Kristijan <kristijanzafirovski26@…>
Branches:
master
Children:
1c51912
Parents:
c164f8f
Message:

dodadeno informacii za broj na lugje

File:
1 edited

Legend:

Unmodified
Added
Removed
  • backend/GlobeGuru-backend/src/main/java/DatabaseUtil.java

    rc164f8f r53bad7e  
    3131                             "price REAL, " +
    3232                             "dateRange TEXT, " +
     33                             "numberOfPeople INTEGER, " +
    3334                             "isPriceChanged BOOLEAN DEFAULT 0, " +
    3435                             "newPrice REAL DEFAULT 0)"
     
    5556            stmt.setString(1, username);
    5657            stmt.setString(2, email);
    57             stmt.setString(3, password); // Store hashed
     58            stmt.setString(3, password);
    5859            return stmt.executeUpdate() > 0;
    5960        }
     
    6970                    String storedPassword = rs.getString("password");
    7071                    if (password == null) {
    71                         // Assume this is a Google login
     72                        // Google login
    7273                        return storedPassword == null;
    7374                    }
    74                     return password.equals(storedPassword); // Check hashed password
     75                    return password.equals(storedPassword);
    7576                }
    7677            }
     
    9293            try (ResultSet rs = selectStmt.executeQuery()) {
    9394                if (rs.next()) {
    94                     // User exists, delete the user and their favourite options
    9595                    deleteStmt.setInt(1, userId);
    9696                    int rowsAffected = deleteStmt.executeUpdate();
     
    101101                    return rowsAffected > 0;
    102102                } else {
    103                     // User does not exist
    104103                    return false;
    105104                }
     
    135134    }
    136135
    137     public static List<Option> queryOptions(String destination, String dateQuery, boolean dateFlag) throws SQLException {
     136    public static List<Option> queryOptions(String destination, String dateQuery, int numPeople, boolean dateFlag) throws SQLException {
    138137        List<Option> options = new ArrayList<>();
    139138        String sql = "SELECT * FROM options WHERE (country LIKE ? OR hotelName LIKE ?)";
     
    143142        } //append date
    144143        if (dateFlag) {   //search only from dates
    145             sql += "AND dateRange LIKE ?";
    146         }
     144            sql += " AND dateRange LIKE ?";
     145        }
     146        if(numPeople != 0) { //with number of people
     147            sql += " AND numberOfPeople = ?";
     148        }
     149
    147150        System.out.println("Searching for dest:" + destination + "\n" + sql);
    148151        try (Connection conn = getConnection();
     
    156159                stmt.setString(3, dateQuery + "%");
    157160            }
    158             // Execute query
     161            if(numPeople != 0) {
     162                stmt.setInt(4, numPeople);
     163            }
    159164            try (ResultSet rs = stmt.executeQuery()) {
    160165                while (rs.next()) {
     
    167172                    option.setPrice(rs.getFloat("price"));
    168173                    option.setDateRange(rs.getString("dateRange"));
     174                    option.setNumPeople(rs.getInt("numberOfPeople"));
    169175                    options.add(option);
    170176                }
     
    185191    }
    186192
    187     //TODO add frontend
     193
    188194    public static boolean removeFavoriteOption(int userId, int optionId) throws SQLException {
    189195        String sql = "DELETE FROM savedOptions WHERE userId = ? AND optionId = ?";
     
    269275
    270276    public static void saveOptionToDatabase(Option option) {
    271         String sql = "INSERT INTO options (link, imgSrc, hotelName, country, price, dateRange, isPriceChanged, newPrice) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
     277        String sql = "INSERT INTO options (link, imgSrc, hotelName, country, price, dateRange,numberOfPeople, isPriceChanged, newPrice) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
    272278        try (Connection conn = DriverManager.getConnection("jdbc:sqlite:globe_guru.db");
    273279             PreparedStatement stmt = conn.prepareStatement(sql)) {
     
    278284            stmt.setFloat(5, option.getPrice());
    279285            stmt.setString(6, option.getDateRange());
    280             stmt.setBoolean(7, option.isPriceChanged());
    281             stmt.setFloat(8, option.getNewPrice());
     286            stmt.setInt(7,option.getNumPeople());
     287            stmt.setBoolean(8, option.isPriceChanged());
     288            stmt.setFloat(9, option.getNewPrice());
    282289            stmt.executeUpdate();
    283290        } catch (SQLException e) {
     
    293300            PreparedStatement stmt = conn.prepareStatement(sql)){
    294301            stmt.executeUpdate();
    295             //Remake the options DB
    296302            initializeDatabase();
    297303
     
    334340                    existingOption.setPriceChanged(rs.getBoolean("isPriceChanged"));
    335341                    existingOption.setNewPrice(rs.getInt("newPrice"));
     342                    existingOption.setNumPeople(rs.getInt("numberOfPeople"));
    336343                    return existingOption;
    337344                }
Note: See TracChangeset for help on using the changeset viewer.