Commit ea657cee by Patryk Czarnik

Dodatkowe operacje SOAP

parent 8772122f
package sklep.soap; package sklep.soap;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebResult; import javax.jws.WebResult;
import javax.jws.WebService; import javax.jws.WebService;
import sklep.db.CustomerDAO;
import sklep.db.DBConnection; import sklep.db.DBConnection;
import sklep.db.DBException; import sklep.db.DBException;
import sklep.db.OrderDAO;
import sklep.db.ProductDAO; import sklep.db.ProductDAO;
import sklep.db.RecordNotFound;
import sklep.model.Customer;
import sklep.model.Order;
import sklep.model.Product; import sklep.model.Product;
import sklep.photo.PhotoUtil;
@WebService @WebService
public class Sklep { public class Sklep {
...@@ -20,11 +28,71 @@ public class Sklep { ...@@ -20,11 +28,71 @@ public class Sklep {
} }
} }
// W klasie ProductDAO znajdują się metody służące do odczytu 1 produktu wg id @WebResult(name="product")
// oraz listy produktów dla podanego zakresu cen public Product readOneProduct(@WebParam(name="id") int productId) throws DBException, RecordNotFound {
// TODO - utwórz analogiczne metody w tym weserwisie try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
return productDAO.findById(productId);
}
}
// TODO 2 - metoda, która pozwala zapisać na serwerze przesłany Product @WebResult(name="product")
public List<Product> readProductsByPrice(
@WebParam(name="min") BigDecimal minPrice,
@WebParam(name="max") BigDecimal maxPrice
) throws DBException {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
return productDAO.findByPrice(minPrice, maxPrice);
}
}
public void saveProduct(@WebParam(name="product") Product product) throws DBException {
try(DBConnection db = DBConnection.open()) {
ProductDAO productDAO = db.productDAO();
productDAO.save(product);
db.commit();
}
}
@WebResult(name="bytes")
public byte[] foto(@WebParam(name="id") int productId) throws DBException, RecordNotFound {
return PhotoUtil.readBytes(productId);
}
// Dane binarne są domyślnie wstawiane do XML skonwertowane na format base64.
// Po użyciu adnotacji @MTOM są dołączane jako załacznik do komunikatu SOAP
// (to się nazywa "SOAP with Attachments").
@WebResult(name="order")
public List<Order> odczytajWszystkieZamowienia() throws DBException {
try(DBConnection db = DBConnection.open()) {
OrderDAO orderDAO = db.orderDAO();
return orderDAO.readAll();
}
}
@WebResult(name="order")
public Order odczytajJednoZamowienie(@WebParam(name="id") int orderId) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
OrderDAO orderDAO = db.orderDAO();
return orderDAO.findById(orderId);
}
}
@WebResult(name="customer")
public List<Customer> odczytajWszystkichKlientow() throws DBException {
try(DBConnection db = DBConnection.open()) {
CustomerDAO customerDAO = db.customerDAO();
return customerDAO.readAll();
}
}
@WebResult(name="customer")
public Customer odczytajJednegoKlienta(@WebParam(name="email") String email) throws DBException, RecordNotFound {
try(DBConnection db = DBConnection.open()) {
CustomerDAO customerDAO = db.customerDAO();
return customerDAO.findByEmail(email);
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment