@dascompany/product 3.0.5 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/SQL.json CHANGED
@@ -31,6 +31,7 @@
31
31
  "select": "SELECT * FROM personal_information.delivery_details",
32
32
  "insert": "INSERT INTO personal_information.delivery_details(id, personal_data_id, address_id, delivery_method_id) VALUES ($id::BIGINT, $personal_data_id::BIGINT, $address_id::BIGINT, $delivery_method_id::BIGINT)",
33
33
  "update": "UPDATE personal_information.delivery_details SET personal_data_id = $personal_data_id::BIGINT, address_id = $address_id::BIGINT, delivery_method_id = $delivery_method_id::BIGINT WHERE id = $id::BIGINT",
34
+ "delete": "DELETE FROM personal_information.delivery_details WHERE id = $id::BIGINT",
34
35
  "selectNextId": "SELECT nextval('personal_information.delivery_details_id'::regclass)"
35
36
  },
36
37
  "invoiceDetails": {
@@ -1,4 +1,7 @@
1
1
  import DatabaseConnection from "../DatabaseConnection";
2
+ import PersonalDataRepo from "../repo/PersonalDataRepo";
3
+ import AddressesRepo from "../repo/AddressesRepo";
4
+ import createQueryOptionsForId from "../utils/createQueryOptionsForId";
2
5
  export default class DeliveryDetailsMapper {
3
6
  deliveryDetails;
4
7
  deliveryDetailsTable;
@@ -13,5 +16,10 @@ export default class DeliveryDetailsMapper {
13
16
  await this.deliveryDetailsTable.insert(this.deliveryDetails);
14
17
  }
15
18
  async delete() {
19
+ const personalData = await PersonalDataRepo.get(createQueryOptionsForId(this.deliveryDetails.getPersonalDataId()));
20
+ personalData.delete();
21
+ const address = await AddressesRepo.get(createQueryOptionsForId(this.deliveryDetails.getAddressId()));
22
+ address.delete();
23
+ await this.deliveryDetailsTable.delete(this.deliveryDetails);
16
24
  }
17
25
  }
@@ -17,10 +17,11 @@ export default class Client extends StockObject {
17
17
  setActivated(activated: boolean): void;
18
18
  setDeleted(deleted: boolean): void;
19
19
  setPersonalDetailsId(personalDetailsId: number): void;
20
- setDeliveryDetailsId(deliveryDetailsId: number): void;
20
+ setDeliveryDetailsId(deliveryDetailsId: number | null): void;
21
21
  setCompanyDetailsId(companyDetailsId: number): void;
22
22
  addCompanyDetails(companyDetailsId: number): Promise<void>;
23
23
  addDeliveryDetails(deliveryDetailsId: number): Promise<void>;
24
+ deleteDeliveryDetails(deliveryDetailsId: number): Promise<void>;
24
25
  getCompanyDetails(): void;
25
26
  protected getMapper(): StockObjectMapper;
26
27
  }
@@ -1,6 +1,8 @@
1
1
  import { StockObject } from "@dascompany/database";
2
2
  import ClientMapper from "../mappers/ClientMapper";
3
3
  import DatabaseConnection from "../DatabaseConnection";
4
+ import DeliveryDetailsRepo from "../repo/DeliveryDetailsRepo";
5
+ import createQueryOptionsForId from "../utils/createQueryOptionsForId";
4
6
  export default class Client extends StockObject {
5
7
  email;
6
8
  activated;
@@ -66,6 +68,15 @@ export default class Client extends StockObject {
66
68
  else
67
69
  throw new Error(`Client account ${id} does not exist. Cannot add delivery details.`);
68
70
  }
71
+ async deleteDeliveryDetails(deliveryDetailsId) {
72
+ await DatabaseConnection.getInstance().accountDeliveryDetails.delete(deliveryDetailsId);
73
+ if (this.deliveryDetailsId == deliveryDetailsId) {
74
+ this.setDeliveryDetailsId(null);
75
+ await DatabaseConnection.getInstance().clientAccounts.update(this);
76
+ }
77
+ const deliveryDetails = await DeliveryDetailsRepo.get(createQueryOptionsForId(deliveryDetailsId));
78
+ deliveryDetails.delete();
79
+ }
69
80
  getCompanyDetails() {
70
81
  }
71
82
  getMapper() {
@@ -3,9 +3,9 @@ export default class DeliveryDetails extends StockObject {
3
3
  private personalDataId;
4
4
  private addressId;
5
5
  private deliveryMethodId;
6
- constructor(personalDataId: number, addressId: number | null, deliveryMethodId: number | null);
7
- getPersonalDataId(): number | null;
8
- getAddressId(): number | null;
6
+ constructor(personalDataId: number, addressId: number, deliveryMethodId: number | null);
7
+ getPersonalDataId(): number;
8
+ getAddressId(): number;
9
9
  getDeliveryMethodId(): number | null;
10
10
  setAddressId(addressId: number): number;
11
11
  setPersonalDataId(personalDataId: number): number;
@@ -5,6 +5,7 @@ export default class DeliveryDetailsTable extends Table {
5
5
  select(queryOptions: QueryOptions): Promise<DeliveryDetailsRow>;
6
6
  insert(deliveryDetails: DeliveryDetails): Promise<void>;
7
7
  update(deliveryDetails: DeliveryDetails): Promise<void>;
8
+ delete(deliveryDetails: DeliveryDetails): Promise<void>;
8
9
  private selectNextId;
9
10
  private bindParameters;
10
11
  }
@@ -21,6 +21,12 @@ export default class DeliveryDetailsTable extends Table {
21
21
  this.bindParameters(query, deliveryDetails);
22
22
  await query.execute();
23
23
  }
24
+ async delete(deliveryDetails) {
25
+ const id = deliveryDetails.getId();
26
+ const query = this.createQuery(SQL.deliveryDetails.delete);
27
+ query.bindParameter('id', id);
28
+ await query.execute();
29
+ }
24
30
  async selectNextId() {
25
31
  const query = this.createQuery(SQL.deliveryDetails.selectNextId);
26
32
  const result = await query.execute();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dascompany/product",
3
- "version": "3.0.5",
3
+ "version": "3.0.7",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "vitest",