product_rent.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { rents_screen } from "./rents_screen.js";
  2. import { product_rent_request } from "./product_rent_request.js";
  3. import { reservation } from "./reservation.js";
  4. import { reservation_factory } from "./reservation_factory.js";
  5. import { searcher } from "./searcher.js";
  6. export class product_rent extends rents_screen {
  7. get _name() {
  8. return _("product-rent");
  9. }
  10. async _process() {
  11. try {
  12. this._info = _("processing");
  13. const target = new reservation_factory()
  14. .email(this._email)
  15. .phone_number(this._phone)
  16. .product(this._target)
  17. .result();
  18. const request = new product_rent_request(target);
  19. const response = await request.connect();
  20. if (!response.result) {
  21. throw new Error(response.cause);
  22. }
  23. this._success = _("new-rent-added");
  24. searcher.reload();
  25. setTimeout(() => {
  26. this.hide();
  27. }, 500);
  28. } catch (error) {
  29. this._error = String(error);
  30. }
  31. }
  32. }