@dascompany/product 3.0.1 → 3.0.2

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
@@ -53,8 +53,8 @@
53
53
  },
54
54
  "personalData": {
55
55
  "select": "SELECT * FROM personal_information.personal_data",
56
- "insert": "INSERT INTO personal_information.personal_data (id, first_name, last_name, email, phone_number, company_details_id) VALUES ($id::BIGINT, $first_name::TEXT, $last_name::TEXT, $email::TEXT, $phone_number::TEXT, $company_details_id::BIGINT)",
57
- "update": "UPDATE personal_information.personal_data SET email = $email::TEXT, first_name = $first_name::TEXT, last_name= $last_name::TEXT, phone_number = $phone_number::TEXT, company_details_id = $company_details_id::BIGINT WHERE id = $id::BIGINT",
56
+ "insert": "INSERT INTO personal_information.personal_data (id, first_name, last_name, email, phone_number) VALUES ($id::BIGINT, $first_name::TEXT, $last_name::TEXT, $email::TEXT, $phone_number::TEXT)",
57
+ "update": "UPDATE personal_information.personal_data SET email = $email::TEXT, first_name = $first_name::TEXT, last_name= $last_name::TEXT, phone_number = $phone_number::TEXT WHERE id = $id::BIGINT",
58
58
  "selectNextId": "SELECT nextval('personal_information.personal_data_id'::regclass)"
59
59
  },
60
60
  "companyDetails": {
@@ -31,9 +31,9 @@ export default class ClientAccountReader {
31
31
  createdAt: client.created_at,
32
32
  activated: client.activated,
33
33
  deleted: client.deleted,
34
- personalDataId: client.contact_details_id,
34
+ personalDataId: client.personal_data_id,
35
35
  deliveryDetailsId: client.delivery_details_id,
36
- companyDetailsId: client.invoice_details_id,
36
+ companyDetailsId: client.company_details_id,
37
37
  };
38
38
  }
39
39
  }
@@ -1,12 +1,16 @@
1
1
  import DatabaseConnection from "../DatabaseConnection";
2
+ import AddressesReader from "./AddressesReader";
3
+ import createQueryOptionsForId from "../utils/createQueryOptionsForId";
2
4
  export default class CompanyDetailsReader {
3
5
  static async get(queryOptions) {
4
6
  const companyDetails = await DatabaseConnection.getInstance().companyDetails.select(queryOptions);
7
+ const address = await AddressesReader.get(createQueryOptionsForId(companyDetails.address_id));
5
8
  if (companyDetails)
6
9
  return {
7
10
  id: companyDetails.id,
8
11
  name: companyDetails.name,
9
- taxNumber: companyDetails.tax_number
12
+ taxNumber: companyDetails.tax_number,
13
+ address
10
14
  };
11
15
  else
12
16
  throw Error(`no companyDetails found with queryOptions: ${queryOptions}`);
@@ -1,15 +1,9 @@
1
1
  import DatabaseConnection from "../DatabaseConnection";
2
2
  import correctPhoneNumber from "../utils/correctPhoneNumber";
3
- import CompanyDetailsReader from "./CompanyDetailsReader";
4
- import createQueryOptionsForId from "../utils/createQueryOptionsForId";
5
3
  export default class PersonalDataReader {
6
4
  static async get(queryOptions) {
7
5
  const personalDataRow = await DatabaseConnection.getInstance().personalData.select(queryOptions);
8
6
  const personalData = this.correctPersonalData(personalDataRow);
9
- if (personalDataRow.company_details_id) {
10
- personalData.companyDetails = await CompanyDetailsReader.get(createQueryOptionsForId(personalDataRow.company_details_id));
11
- personalData.isCompany = true;
12
- }
13
7
  return personalData;
14
8
  }
15
9
  static correctPersonalData(personalDataRow) {
@@ -19,9 +13,7 @@ export default class PersonalDataReader {
19
13
  firstName: personalDataRow.first_name,
20
14
  lastName: personalDataRow.last_name,
21
15
  email: personalDataRow.email,
22
- phoneNumber,
23
- companyDetails: null,
24
- isCompany: false
16
+ phoneNumber
25
17
  };
26
18
  }
27
19
  }
@@ -6,7 +6,7 @@ export default class CompanyDetailsRepo {
6
6
  return this.createCompanyDetailsFromRow(companyDetailsRow);
7
7
  }
8
8
  static createCompanyDetailsFromRow(companyDetailsRow) {
9
- const companyDetails = new CompanyDetails(companyDetailsRow.name, companyDetailsRow.tax_number);
9
+ const companyDetails = new CompanyDetails(companyDetailsRow.name, companyDetailsRow.tax_number, companyDetailsRow.address_id);
10
10
  companyDetails.setId(companyDetailsRow.id);
11
11
  return companyDetails;
12
12
  }
@@ -8,7 +8,7 @@ export default class PersonalDataRepo {
8
8
  }
9
9
  static createPersonalDataFromRow(dataRow) {
10
10
  const phoneNumber = correctPhoneNumber(dataRow.phone_number);
11
- const personalData = new PersonalData(dataRow.email, dataRow.first_name, dataRow.last_name, phoneNumber, dataRow.company_details_id);
11
+ const personalData = new PersonalData(dataRow.email, dataRow.first_name, dataRow.last_name, phoneNumber);
12
12
  personalData.setId(dataRow.id);
13
13
  return personalData;
14
14
  }
@@ -1,12 +1,13 @@
1
1
  import { StockObject, StockObjectMapper } from "@dascompany/database";
2
- import CompanyDetailsI from "../types/CompanyDetailsI";
3
2
  export default class CompanyDetails extends StockObject {
4
3
  private name;
5
4
  private taxNumber;
6
- constructor(name: string, taxNumber: string);
7
- getData(): CompanyDetailsI;
5
+ private addressId;
6
+ constructor(name: string, taxNumber: string, addressId: number);
8
7
  getName(): string;
9
8
  getTaxNumber(): string;
9
+ getAddressId(): number;
10
+ setAddressId(addressId: number): void;
10
11
  setName(name: string): void;
11
12
  setTaxNumber(taxNumber: string): void;
12
13
  protected getMapper(): StockObjectMapper;
@@ -3,18 +3,12 @@ import CompanyDetailsMapper from "../mappers/CompanyDetailsMapper";
3
3
  export default class CompanyDetails extends StockObject {
4
4
  name;
5
5
  taxNumber;
6
- constructor(name, taxNumber) {
6
+ addressId;
7
+ constructor(name, taxNumber, addressId) {
7
8
  super();
8
9
  this.name = name;
9
- this.taxNumber = taxNumber;
10
- }
11
- getData() {
12
- const id = this.getId();
13
- return {
14
- id,
15
- name: this.name,
16
- taxNumber: this.taxNumber
17
- };
10
+ this.taxNumber = taxNumber,
11
+ this.addressId = addressId;
18
12
  }
19
13
  getName() {
20
14
  return this.name;
@@ -22,6 +16,12 @@ export default class CompanyDetails extends StockObject {
22
16
  getTaxNumber() {
23
17
  return this.taxNumber;
24
18
  }
19
+ getAddressId() {
20
+ return this.addressId;
21
+ }
22
+ setAddressId(addressId) {
23
+ this.addressId = addressId;
24
+ }
25
25
  setName(name) {
26
26
  this.name = name;
27
27
  }
@@ -1,34 +1,24 @@
1
1
  import { StockObject, StockObjectMapper } from "@dascompany/database";
2
- import CompanyDetails from "./CompanyDetails";
3
- import CompanyDetailsI from "../types/CompanyDetailsI";
4
2
  export default class PersonalData extends StockObject {
5
3
  private email;
6
4
  private firstName;
7
5
  private lastName;
8
6
  private phoneNumber;
9
- private companyDetailsId;
10
- private companyDetails;
11
- constructor(email: string, firstName: string, lastName: string, phoneNumber: string, companyDetailsId?: number | null);
7
+ constructor(email: string, firstName: string, lastName: string, phoneNumber: string);
12
8
  getData(): Promise<{
13
9
  email: string;
14
10
  firstName: string;
15
11
  lastName: string;
16
12
  phoneNumber: string;
17
- companyDetails: CompanyDetailsI | null;
18
13
  }>;
19
- getCompanyDetailsData(): Promise<CompanyDetailsI | null>;
20
- getCompanyDetails(): Promise<CompanyDetails | null>;
21
- isCompany(): boolean;
22
14
  getEmail(): string;
23
15
  getFirstName(): string;
24
16
  getLastName(): string;
25
17
  getName(): string;
26
18
  getPhoneNumber(): string;
27
- getCompanyDetailsId(): number | null;
28
19
  setEmail(email: string): void;
29
20
  setFirstName(firstName: string): void;
30
21
  setLastName(lastName: string): void;
31
22
  setPhoneNumber(phoneNumber: string): void;
32
- setCompanyDetailsId(companyDetailsId: number | null): void;
33
23
  protected getMapper(): StockObjectMapper;
34
24
  }
@@ -1,50 +1,25 @@
1
- import { ParameterType, QueryOptions, StockObject } from "@dascompany/database";
1
+ import { StockObject } from "@dascompany/database";
2
2
  import PersonalDataMapper from "../mappers/PersonalDataMapper";
3
- import CompanyDetailsRepo from "../repo/CompanyDetailsRepo";
4
3
  export default class PersonalData extends StockObject {
5
4
  email;
6
5
  firstName;
7
6
  lastName;
8
7
  phoneNumber;
9
- companyDetailsId;
10
- companyDetails;
11
- constructor(email, firstName, lastName, phoneNumber, companyDetailsId = null) {
8
+ constructor(email, firstName, lastName, phoneNumber) {
12
9
  super();
13
10
  this.email = email;
14
11
  this.firstName = firstName;
15
12
  this.lastName = lastName;
16
13
  this.phoneNumber = phoneNumber;
17
- this.companyDetailsId = companyDetailsId;
18
- this.companyDetails = null;
19
14
  }
20
15
  async getData() {
21
- const companyDetails = await this.getCompanyDetailsData();
22
16
  return {
23
17
  email: this.email,
24
18
  firstName: this.firstName,
25
19
  lastName: this.lastName,
26
20
  phoneNumber: this.phoneNumber,
27
- companyDetails,
28
21
  };
29
22
  }
30
- async getCompanyDetailsData() {
31
- let companyDetailsData = null;
32
- await this.getCompanyDetails();
33
- if (this.companyDetails)
34
- companyDetailsData = this.companyDetails.getData();
35
- return companyDetailsData;
36
- }
37
- async getCompanyDetails() {
38
- if (this.companyDetailsId && !this.companyDetails) {
39
- const queryOptions = new QueryOptions();
40
- queryOptions.setWhere([{ name: 'id', type: ParameterType.bigint, value: this.companyDetailsId }]);
41
- this.companyDetails = await CompanyDetailsRepo.get(queryOptions);
42
- }
43
- return this.companyDetails;
44
- }
45
- isCompany() {
46
- return !!this.companyDetailsId;
47
- }
48
23
  getEmail() {
49
24
  return this.email;
50
25
  }
@@ -60,9 +35,6 @@ export default class PersonalData extends StockObject {
60
35
  getPhoneNumber() {
61
36
  return this.phoneNumber;
62
37
  }
63
- getCompanyDetailsId() {
64
- return this.companyDetailsId;
65
- }
66
38
  setEmail(email) {
67
39
  this.email = email;
68
40
  }
@@ -75,9 +47,6 @@ export default class PersonalData extends StockObject {
75
47
  setPhoneNumber(phoneNumber) {
76
48
  this.phoneNumber = phoneNumber;
77
49
  }
78
- setCompanyDetailsId(companyDetailsId) {
79
- this.companyDetailsId = companyDetailsId;
80
- }
81
50
  getMapper() {
82
51
  return new PersonalDataMapper(this);
83
52
  }
@@ -33,5 +33,6 @@ export default class CompanyDetailsTable extends Table {
33
33
  bindParameters(query, companyDetails) {
34
34
  query.bindParameter('name', companyDetails.getName());
35
35
  query.bindParameter('tax_number', companyDetails.getTaxNumber());
36
+ query.bindParameter('address_id', companyDetails.getAddressId());
36
37
  }
37
38
  }
@@ -31,6 +31,5 @@ export default class PersonalDataTable extends Table {
31
31
  query.bindParameter('first_name', personalData.getFirstName());
32
32
  query.bindParameter('last_name', personalData.getLastName());
33
33
  query.bindParameter('phone_number', personalData.getPhoneNumber());
34
- query.bindParameter('company_details_id', personalData.getCompanyDetailsId());
35
34
  }
36
35
  }
@@ -1,5 +1,7 @@
1
+ import AddressI from "./AddressI";
1
2
  export default interface CompanyDetailsI {
2
3
  id: number | null;
3
4
  name: string;
4
5
  taxNumber: string;
6
+ address: AddressI;
5
7
  }
@@ -1,10 +1,7 @@
1
- import CompanyDetailsI from "./CompanyDetailsI";
2
1
  export default interface PersonalDataI {
3
2
  id: number;
4
3
  firstName: string;
5
4
  lastName: string;
6
5
  email: string;
7
6
  phoneNumber: string;
8
- isCompany: boolean;
9
- companyDetails: CompanyDetailsI | null;
10
7
  }
@@ -2,4 +2,5 @@ export default interface CompanyDetailsRow {
2
2
  id: number;
3
3
  name: string;
4
4
  tax_number: string;
5
+ address_id: number;
5
6
  }
@@ -4,5 +4,4 @@ export default interface PersonalDataRow {
4
4
  last_name: string;
5
5
  email: string;
6
6
  phone_number: string;
7
- company_details_id: number;
8
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dascompany/product",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "vitest",