@dascompany/product 2.1.14 → 2.1.16

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.
@@ -21,6 +21,7 @@ import PaymentStatusesTable from './tables/orders/PaymentStatusesTable';
21
21
  import CompanyDataTable from './tables/settings/CompanyDataTable';
22
22
  import FileConnectionsTable from './tables/files/FileConnectionsTable';
23
23
  import AdminAccountsTable from './tables/public/AdminAccountsTable';
24
+ import AccountAddressesTable from './tables/clients/AccountAddressesTable';
24
25
  export default class DatabaseConnection {
25
26
  static instance: DatabaseConnection;
26
27
  private tables;
@@ -34,6 +35,7 @@ export default class DatabaseConnection {
34
35
  get statuses(): StatusesTable;
35
36
  get addresses(): AddressesTable;
36
37
  get clientAccounts(): ClientAccountsTable;
38
+ get accountAddresses(): AccountAddressesTable;
37
39
  get adminAccounts(): AdminAccountsTable;
38
40
  get companyDetails(): CompanyDetailsTable;
39
41
  get personalData(): PersonalDataTable;
@@ -23,6 +23,7 @@ import PaymentStatusesTable from './tables/orders/PaymentStatusesTable';
23
23
  import CompanyDataTable from './tables/settings/CompanyDataTable';
24
24
  import FileConnectionsTable from './tables/files/FileConnectionsTable';
25
25
  import AdminAccountsTable from './tables/public/AdminAccountsTable';
26
+ import AccountAddressesTable from './tables/clients/AccountAddressesTable';
26
27
  export default class DatabaseConnection {
27
28
  static instance;
28
29
  tables = new Map();
@@ -70,6 +71,11 @@ export default class DatabaseConnection {
70
71
  this.tables.set(TableNames.clientAccounts, new ClientAccountsTable(this.connection));
71
72
  return this.tables.get(TableNames.clientAccounts);
72
73
  }
74
+ get accountAddresses() {
75
+ if (!this.tables.get(TableNames.accountAddresses))
76
+ this.tables.set(TableNames.accountAddresses, new AccountAddressesTable(this.connection));
77
+ return this.tables.get(TableNames.accountAddresses);
78
+ }
73
79
  get adminAccounts() {
74
80
  if (!this.tables.get(TableNames.adminAccounts))
75
81
  this.tables.set(TableNames.adminAccounts, new AdminAccountsTable(this.connection));
package/dist/SQL.json CHANGED
@@ -17,6 +17,13 @@
17
17
  "count": "SELECT COUNT(*) AS total_rows FROM clients.accounts",
18
18
  "selectNextId": "SELECT nextval('clients.accounts_id'::regclass)"
19
19
  },
20
+ "accountAddresses": {
21
+ "select": "SELECT * FROM clients.account_addresses",
22
+ "selectId": "SELECT id FROM clients.account_addresses ",
23
+ "insert": "INSERT INTO clients.account_addresses( id, account_id, address_id) VALUES ($id::BIGINT, $account_id::BIGINT, $address_id::BIGINT)",
24
+ "delete": "DELETE FROM clients.account_addresses WHERE id = $id::BIGINT",
25
+ "selectNextId": "SELECT nextval('clients.account_addresses_id'::regclass)"
26
+ },
20
27
  "contactDetails": {
21
28
  "select": "SELECT * FROM personal_information.contact_details",
22
29
  "insert": "INSERT INTO personal_information.contact_details(id, personal_data_id, address_id) VALUES ($id::BIGINT, $personal_data_id::BIGINT, $address_id::BIGINT)",
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import Client from "./stockObjects/Client";
2
2
  import ClientAccountRepo from "./repo/ClientAccountRepo";
3
3
  import ClientAccountReader from "./reader/ClientAccountReader";
4
+ import AccountAddress from "./stockObjects/AccountAddress";
5
+ import AccountAddressesReader from "./reader/AccountAddressesReader";
6
+ import AccountAddressesRepo from "./repo/AccountAddressesRepo";
4
7
  import Admin from "./stockObjects/Admin";
5
8
  import AdminRepo from "./repo/AdminRepo";
6
9
  import AdminReader from "./reader/AdminReader";
@@ -56,7 +59,6 @@ import OrderProductsRepo from "./repo/OrderProductsRepo";
56
59
  import OrderProductsReader from "./reader/OrderProductsReader";
57
60
  import OrderProductI from './types/OrderProductI';
58
61
  import Status from "./stockObjects/Status";
59
- import OrderStatusRepo from "./repo/OrderStatusRepo";
60
62
  import OrderStatusReader from "./reader/OrderStatusReader";
61
63
  import StatusI from "./types/StatusI";
62
64
  import OrderStatusTypeE from "./types/OrderStatusTypeE";
@@ -79,4 +81,4 @@ import CompanyDataReader from "./reader/CompanyDataReader";
79
81
  import CompanyDataI from "./types/CompanyDataI";
80
82
  import PriceConverter from "./utils/PriceConverter";
81
83
  import createQueryOptionsForId from "./utils/createQueryOptionsForId";
82
- export { Client, ClientAccountRepo, ClientAccountReader, Admin, AdminRepo, AdminReader, Address, AddressI, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, PersonalDataI, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, CompanyDetailsI, ContactDetails, ContactDetailsRepo, ContactDetailsReader, ContactDetailsI, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryDetailsI, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodI, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, InvoiceDetailsI, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentDetailsI, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentMethodI, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, OrderProductI, Status, OrderStatusRepo, OrderStatusReader, StatusI, OrderStatusTypeE, StatusTypesReader, ProductI, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileI, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, CompanyDataI, PriceConverter, createQueryOptionsForId };
84
+ export { Client, ClientAccountRepo, ClientAccountReader, AccountAddress, AccountAddressesReader, AccountAddressesRepo, Admin, AdminRepo, AdminReader, Address, AddressI, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, PersonalDataI, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, CompanyDetailsI, ContactDetails, ContactDetailsRepo, ContactDetailsReader, ContactDetailsI, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryDetailsI, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodI, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, InvoiceDetailsI, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentDetailsI, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentMethodI, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, OrderProductI, Status, OrderStatusReader, StatusI, OrderStatusTypeE, StatusTypesReader, ProductI, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileI, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, CompanyDataI, PriceConverter, createQueryOptionsForId };
package/dist/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  import Client from "./stockObjects/Client";
2
2
  import ClientAccountRepo from "./repo/ClientAccountRepo";
3
3
  import ClientAccountReader from "./reader/ClientAccountReader";
4
+ import AccountAddress from "./stockObjects/AccountAddress";
5
+ import AccountAddressesReader from "./reader/AccountAddressesReader";
6
+ import AccountAddressesRepo from "./repo/AccountAddressesRepo";
4
7
  import Admin from "./stockObjects/Admin";
5
8
  import AdminRepo from "./repo/AdminRepo";
6
9
  import AdminReader from "./reader/AdminReader";
@@ -46,7 +49,6 @@ import OrderProduct from "./stockObjects/OrderProduct";
46
49
  import OrderProductsRepo from "./repo/OrderProductsRepo";
47
50
  import OrderProductsReader from "./reader/OrderProductsReader";
48
51
  import Status from "./stockObjects/Status";
49
- import OrderStatusRepo from "./repo/OrderStatusRepo";
50
52
  import OrderStatusReader from "./reader/OrderStatusReader";
51
53
  import OrderStatusTypeE from "./types/OrderStatusTypeE";
52
54
  import StatusTypesReader from './reader/StatusTypesReader';
@@ -65,4 +67,4 @@ import CompanyDataRepo from "./repo/CompanyDataRepo";
65
67
  import CompanyDataReader from "./reader/CompanyDataReader";
66
68
  import PriceConverter from "./utils/PriceConverter";
67
69
  import createQueryOptionsForId from "./utils/createQueryOptionsForId";
68
- export { Client, ClientAccountRepo, ClientAccountReader, Admin, AdminRepo, AdminReader, Address, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, ContactDetails, ContactDetailsRepo, ContactDetailsReader, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, Status, OrderStatusRepo, OrderStatusReader, OrderStatusTypeE, StatusTypesReader, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, PriceConverter, createQueryOptionsForId };
70
+ export { Client, ClientAccountRepo, ClientAccountReader, AccountAddress, AccountAddressesReader, AccountAddressesRepo, Admin, AdminRepo, AdminReader, Address, AddressesRepo, AddressesReader, PersonalData, PersonalDataRepo, PersonalDataReader, CompanyDetails, CompanyDetailsRepo, CompanyDetailsReader, ContactDetails, ContactDetailsRepo, ContactDetailsReader, DeliveryDetails, DeliveryDetailsRepo, DeliveryDetailsReader, DeliveryMethods, DeliveryMethodRepo, DeliveryMethodReader, DeliveryMethodTypeE, DeliveryStatus, DeliveryStatusReader, DeliveryStatusTypeE, InvoiceDetails, InvoiceDetailsRepo, InvoiceDetailsReader, PaymentDetails, PaymentDetailsRepo, PaymentDetailsReader, PaymentMethods, PaymentMethodRepo, PaymentMethodReader, PaymentMethodE, PaymentStatus, PaymentStatusesReader, PaymentStatusE, Order, OrderRepo, OrderReader, OrderProduct, OrderProductsRepo, OrderProductsReader, Status, OrderStatusReader, OrderStatusTypeE, StatusTypesReader, Product, ProductRepo, ProductReader, File, FilesRepo, FilesReader, FileConnection, FileConnectionsRepo, FileConnectionsReader, FileConnectionTypeE, CompanyData, CompanyDataRepo, CompanyDataReader, PriceConverter, createQueryOptionsForId };
@@ -0,0 +1,9 @@
1
+ import { StockObjectMapper } from "@dascompany/database";
2
+ import AccountAddress from "../stockObjects/AccountAddress";
3
+ export default class AccountAddressMapper implements StockObjectMapper {
4
+ private accountAddress;
5
+ private accountAddressessTable;
6
+ constructor(accountAddress: AccountAddress);
7
+ save(): Promise<void>;
8
+ delete(): Promise<void>;
9
+ }
@@ -0,0 +1,19 @@
1
+ import DatabaseConnection from "../DatabaseConnection";
2
+ export default class AccountAddressMapper {
3
+ accountAddress;
4
+ accountAddressessTable;
5
+ constructor(accountAddress) {
6
+ this.accountAddressessTable = DatabaseConnection.getInstance().accountAddresses;
7
+ this.accountAddress = accountAddress;
8
+ }
9
+ async save() {
10
+ await this.accountAddressessTable.insert(this.accountAddress);
11
+ }
12
+ async delete() {
13
+ const accountAddressId = this.accountAddress.getId();
14
+ if (accountAddressId)
15
+ await this.accountAddressessTable.delete(accountAddressId);
16
+ else
17
+ throw new Error('Can`t remove the order and product connection without providing its ID');
18
+ }
19
+ }
@@ -0,0 +1,7 @@
1
+ import { QueryOptions } from "@dascompany/database";
2
+ import AccountAddressesI from "../types/AccountAddressesI";
3
+ export default class AccountAddressesReader {
4
+ static getAll(queryOptions?: QueryOptions): Promise<AccountAddressesI[]>;
5
+ private static correctAccountAddresses;
6
+ private static correctAccountAddress;
7
+ }
@@ -0,0 +1,26 @@
1
+ import DatabaseConnection from "../DatabaseConnection";
2
+ import AddressesReader from "./AddressesReader";
3
+ import createQueryOptionsForId from "../utils/createQueryOptionsForId";
4
+ export default class AccountAddressesReader {
5
+ static async getAll(queryOptions) {
6
+ const accountAddresses = await DatabaseConnection.getInstance().accountAddresses.selectAll(queryOptions);
7
+ return this.correctAccountAddresses(accountAddresses);
8
+ }
9
+ static async correctAccountAddresses(accountAddresses) {
10
+ const correctAccountAddresses = [];
11
+ for (let i = 0; i < accountAddresses.length; i++) {
12
+ const correctAccountAddress = await this.correctAccountAddress(accountAddresses[i]);
13
+ correctAccountAddresses.push(correctAccountAddress);
14
+ }
15
+ return correctAccountAddresses;
16
+ }
17
+ static async correctAccountAddress(accountAddress) {
18
+ const address = await AddressesReader.get(createQueryOptionsForId(accountAddress.address_id));
19
+ const correctAddress = {
20
+ id: accountAddress.id,
21
+ accountId: accountAddress.account_id,
22
+ address: address
23
+ };
24
+ return correctAddress;
25
+ }
26
+ }
@@ -0,0 +1,6 @@
1
+ import { QueryOptions } from "@dascompany/database";
2
+ import AccountAddress from "../stockObjects/AccountAddress";
3
+ export default class AccountAddressesRepo {
4
+ static get(queryOptions: QueryOptions): Promise<AccountAddress>;
5
+ private static createAccountAddressFromRow;
6
+ }
@@ -0,0 +1,13 @@
1
+ import DatabaseConnection from "../DatabaseConnection";
2
+ import AccountAddress from "../stockObjects/AccountAddress";
3
+ export default class AccountAddressesRepo {
4
+ static async get(queryOptions) {
5
+ const accountAddress = await DatabaseConnection.getInstance().accountAddresses.select(queryOptions);
6
+ return this.createAccountAddressFromRow(accountAddress);
7
+ }
8
+ static async createAccountAddressFromRow(dataRow) {
9
+ const accountAddress = new AccountAddress(dataRow.account_id, dataRow.address_id);
10
+ accountAddress.setId(dataRow.id);
11
+ return accountAddress;
12
+ }
13
+ }
@@ -3,8 +3,6 @@ import Admin from "../stockObjects/Admin";
3
3
  export default class AdminRepo {
4
4
  static get(queryOptions: QueryOptions): Promise<Admin>;
5
5
  static getId(queryOptions: QueryOptions): Promise<number>;
6
- static getAll(queryOptions?: QueryOptions): Promise<Admin[]>;
7
6
  static getQuantity(queryOptions: QueryOptions): Promise<number>;
8
- private static createAdminsFromRows;
9
7
  private static createAdminFromRow;
10
8
  }
@@ -8,22 +8,10 @@ export default class AdminRepo {
8
8
  static async getId(queryOptions) {
9
9
  return await DatabaseConnection.getInstance().adminAccounts.selectId(queryOptions);
10
10
  }
11
- static async getAll(queryOptions) {
12
- const adminAccounts = await DatabaseConnection.getInstance().adminAccounts.selectAll(queryOptions);
13
- return this.createAdminsFromRows(adminAccounts);
14
- }
15
11
  static async getQuantity(queryOptions) {
16
12
  const quantity = await DatabaseConnection.getInstance().adminAccounts.count(queryOptions);
17
13
  return quantity;
18
14
  }
19
- static createAdminsFromRows(dataRows) {
20
- const admins = [];
21
- for (const dataRow of dataRows) {
22
- const admin = this.createAdminFromRow(dataRow);
23
- admins.push(admin);
24
- }
25
- return admins;
26
- }
27
15
  static createAdminFromRow(dataRow) {
28
16
  const admin = new Admin(dataRow.email, dataRow.first_name, dataRow.last_name, dataRow.activated, dataRow.deleted, dataRow.created_at);
29
17
  admin.setId(dataRow.id);
@@ -0,0 +1,11 @@
1
+ import { StockObject, StockObjectMapper } from "@dascompany/database";
2
+ export default class AccountAddress extends StockObject {
3
+ private accountId;
4
+ private addressId;
5
+ constructor(accountId: number, addressId: number);
6
+ getAccountId(): number;
7
+ getAddressId(): number;
8
+ setAccountId(accountId: number): void;
9
+ setAddressId(addressId: number): void;
10
+ protected getMapper(): StockObjectMapper;
11
+ }
@@ -0,0 +1,26 @@
1
+ import { StockObject } from "@dascompany/database";
2
+ import AccountAddressMapper from "../mappers/AccountAddressMapper";
3
+ export default class AccountAddress extends StockObject {
4
+ accountId;
5
+ addressId;
6
+ constructor(accountId, addressId) {
7
+ super();
8
+ this.accountId = accountId;
9
+ this.addressId = addressId;
10
+ }
11
+ getAccountId() {
12
+ return this.accountId;
13
+ }
14
+ getAddressId() {
15
+ return this.addressId;
16
+ }
17
+ setAccountId(accountId) {
18
+ this.accountId = accountId;
19
+ }
20
+ setAddressId(addressId) {
21
+ this.addressId = addressId;
22
+ }
23
+ getMapper() {
24
+ return new AccountAddressMapper(this);
25
+ }
26
+ }
@@ -1,6 +1,7 @@
1
1
  declare enum TableNames {
2
2
  adminAccounts = "adminAccountsTable",
3
3
  clientAccounts = "clientAccountsTable",
4
+ accountAddresses = "accountAddressesTable",
4
5
  fileConnections = "fileConnectionsTable",
5
6
  files = "filesTable",
6
7
  ordersProducts = "ordersProductsTable",
@@ -2,6 +2,7 @@ var TableNames;
2
2
  (function (TableNames) {
3
3
  TableNames["adminAccounts"] = "adminAccountsTable";
4
4
  TableNames["clientAccounts"] = "clientAccountsTable";
5
+ TableNames["accountAddresses"] = "accountAddressesTable";
5
6
  TableNames["fileConnections"] = "fileConnectionsTable";
6
7
  TableNames["files"] = "filesTable";
7
8
  TableNames["ordersProducts"] = "ordersProductsTable";
@@ -0,0 +1,12 @@
1
+ import { QueryOptions, Table } from '@dascompany/database';
2
+ import AccountAddressesRow from '../../types/rows/AccountAddressesRow';
3
+ import AccountAddress from '../../stockObjects/AccountAddress';
4
+ export default class AccountAddressesTable extends Table {
5
+ select(queryOptions: QueryOptions): Promise<AccountAddressesRow>;
6
+ selectAll(queryOptions?: QueryOptions): Promise<AccountAddressesRow[]>;
7
+ selectId(queryOptions: QueryOptions): Promise<number | null>;
8
+ delete(id: number): Promise<number>;
9
+ private bindParameters;
10
+ insert(AccountAddresses: AccountAddress): Promise<void>;
11
+ private selectNextId;
12
+ }
@@ -0,0 +1,41 @@
1
+ import { Table } from '@dascompany/database';
2
+ import * as SQL from '../../SQL.json';
3
+ export default class AccountAddressesTable extends Table {
4
+ async select(queryOptions) {
5
+ const query = this.createQuery(SQL.accountAddresses.select, queryOptions);
6
+ const result = await query.execute();
7
+ return result.getRow();
8
+ }
9
+ async selectAll(queryOptions) {
10
+ const query = this.createQuery(SQL.accountAddresses.select, queryOptions);
11
+ const result = await query.execute();
12
+ return result.getRows();
13
+ }
14
+ async selectId(queryOptions) {
15
+ const query = this.createQuery(SQL.accountAddresses.selectId, queryOptions);
16
+ const result = await query.execute();
17
+ return result.getValue();
18
+ }
19
+ async delete(id) {
20
+ const query = this.createQuery(SQL.accountAddresses.delete);
21
+ query.bindParameter('id', id);
22
+ const result = await query.execute();
23
+ return result.getRowCount();
24
+ }
25
+ bindParameters(query, AccountAddresses) {
26
+ query.bindParameter('account_id', AccountAddresses.getAccountId());
27
+ query.bindParameter('address_id', AccountAddresses.getAddressId());
28
+ }
29
+ async insert(AccountAddresses) {
30
+ const id = await this.selectNextId();
31
+ const query = this.createQuery(SQL.accountAddresses.insert);
32
+ this.bindParameters(query, AccountAddresses);
33
+ await query.execute();
34
+ AccountAddresses.setId(id);
35
+ }
36
+ async selectNextId() {
37
+ const query = this.createQuery(SQL.accountAddresses.selectNextId);
38
+ const result = await query.execute();
39
+ return result.getValue();
40
+ }
41
+ }
@@ -0,0 +1,6 @@
1
+ import AddressI from "./AddressI";
2
+ export default interface AccountAddressesI {
3
+ id: number;
4
+ accountId: number;
5
+ address: AddressI;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export default interface AccountAddressesRow {
2
+ id: number;
3
+ account_id: number;
4
+ address_id: number;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dascompany/product",
3
- "version": "2.1.14",
3
+ "version": "2.1.16",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "vitest",