@loopback/repository-tests 0.20.2 → 0.21.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/LICENSE +2 -2
- package/dist/crud/create-retrieve.suite.js +1 -1
- package/dist/crud/create-retrieve.suite.js.map +1 -1
- package/dist/crud/freeform-properties.suite.js +2 -2
- package/dist/crud/freeform-properties.suite.js.map +1 -1
- package/dist/crud/nested-model-properties.suite.js +1 -1
- package/dist/crud/nested-model-properties.suite.js.map +1 -1
- package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.d.ts +2 -0
- package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.js +170 -0
- package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.js.map +1 -0
- package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/belongs-to.inclusion-resolver.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.d.ts +2 -0
- package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.js +55 -0
- package/dist/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.js.map +1 -0
- package/dist/crud/relations/acceptance/belongs-to.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/belongs-to.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-many-inclusion-resolver.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/has-many-inclusion-resolver.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.d.ts +2 -0
- package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.js +170 -0
- package/dist/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.js.map +1 -0
- package/dist/crud/relations/acceptance/has-many-through.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/has-many-through.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.d.ts +2 -0
- package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.js +361 -0
- package/dist/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.js.map +1 -0
- package/dist/crud/relations/acceptance/has-many.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/has-many.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-one.inclusion-resolver.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/has-one.inclusion-resolver.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.d.ts +2 -0
- package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.js +161 -0
- package/dist/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.js.map +1 -0
- package/dist/crud/relations/acceptance/has-one.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/has-one.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.d.ts +2 -0
- package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.js +190 -0
- package/dist/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.js.map +1 -0
- package/dist/crud/relations/acceptance/multi-relations-inclusion-resolver.relation.acceptance.js +1 -1
- package/dist/crud/relations/acceptance/multi-relations-inclusion-resolver.relation.acceptance.js.map +1 -1
- package/dist/crud/relations/fixtures/models/address.model.js +1 -1
- package/dist/crud/relations/fixtures/models/address.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/cart-item.model.js +1 -1
- package/dist/crud/relations/fixtures/models/cart-item.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/contact.model.d.ts +18 -0
- package/dist/crud/relations/fixtures/models/contact.model.js +49 -0
- package/dist/crud/relations/fixtures/models/contact.model.js.map +1 -0
- package/dist/crud/relations/fixtures/models/customer-cart-item-link.model.js +1 -1
- package/dist/crud/relations/fixtures/models/customer-cart-item-link.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/customer-promotion-link.model.d.ts +14 -0
- package/dist/crud/relations/fixtures/models/customer-promotion-link.model.js +46 -0
- package/dist/crud/relations/fixtures/models/customer-promotion-link.model.js.map +1 -0
- package/dist/crud/relations/fixtures/models/customer.model.d.ts +16 -3
- package/dist/crud/relations/fixtures/models/customer.model.js +28 -10
- package/dist/crud/relations/fixtures/models/customer.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/index.d.ts +6 -0
- package/dist/crud/relations/fixtures/models/index.js +7 -1
- package/dist/crud/relations/fixtures/models/index.js.map +1 -1
- package/dist/crud/relations/fixtures/models/order.model.js +1 -1
- package/dist/crud/relations/fixtures/models/order.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/payment-method.model.d.ts +47 -0
- package/dist/crud/relations/fixtures/models/payment-method.model.js +87 -0
- package/dist/crud/relations/fixtures/models/payment-method.model.js.map +1 -0
- package/dist/crud/relations/fixtures/models/promotion.model.d.ts +27 -0
- package/dist/crud/relations/fixtures/models/promotion.model.js +54 -0
- package/dist/crud/relations/fixtures/models/promotion.model.js.map +1 -0
- package/dist/crud/relations/fixtures/models/shipment.model.js +1 -1
- package/dist/crud/relations/fixtures/models/shipment.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/stakeholder.model.d.ts +7 -0
- package/dist/crud/relations/fixtures/models/stakeholder.model.js +38 -0
- package/dist/crud/relations/fixtures/models/stakeholder.model.js.map +1 -0
- package/dist/crud/relations/fixtures/models/supplier.model.d.ts +15 -0
- package/dist/crud/relations/fixtures/models/supplier.model.js +23 -0
- package/dist/crud/relations/fixtures/models/supplier.model.js.map +1 -0
- package/dist/crud/relations/fixtures/models/user-link.model.js +1 -1
- package/dist/crud/relations/fixtures/models/user-link.model.js.map +1 -1
- package/dist/crud/relations/fixtures/models/user.model.js +1 -1
- package/dist/crud/relations/fixtures/models/user.model.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/address.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/address.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/cart-item.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/cart-item.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/contact.repository.d.ts +30 -0
- package/dist/crud/relations/fixtures/repositories/contact.repository.js +21 -0
- package/dist/crud/relations/fixtures/repositories/contact.repository.js.map +1 -0
- package/dist/crud/relations/fixtures/repositories/customer-cart-item-link.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/customer-cart-item-link.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.d.ts +26 -0
- package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.js +18 -0
- package/dist/crud/relations/fixtures/repositories/customer-promotion-link.repository.js.map +1 -0
- package/dist/crud/relations/fixtures/repositories/customer.repository.d.ts +9 -2
- package/dist/crud/relations/fixtures/repositories/customer.repository.js +8 -2
- package/dist/crud/relations/fixtures/repositories/customer.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/index.d.ts +6 -1
- package/dist/crud/relations/fixtures/repositories/index.js +7 -2
- package/dist/crud/relations/fixtures/repositories/index.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/order.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/order.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/payment-method.repository.d.ts +77 -0
- package/dist/crud/relations/fixtures/repositories/payment-method.repository.js +45 -0
- package/dist/crud/relations/fixtures/repositories/payment-method.repository.js.map +1 -0
- package/dist/crud/relations/fixtures/repositories/promotion.repository.d.ts +49 -0
- package/dist/crud/relations/fixtures/repositories/promotion.repository.js +25 -0
- package/dist/crud/relations/fixtures/repositories/promotion.repository.js.map +1 -0
- package/dist/crud/relations/fixtures/repositories/shipment.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/shipment.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/supplier.repository.d.ts +28 -0
- package/dist/crud/relations/fixtures/repositories/supplier.repository.js +21 -0
- package/dist/crud/relations/fixtures/repositories/supplier.repository.js.map +1 -0
- package/dist/crud/relations/fixtures/repositories/user-link.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/user-link.repository.js.map +1 -1
- package/dist/crud/relations/fixtures/repositories/user.repository.js +1 -1
- package/dist/crud/relations/fixtures/repositories/user.repository.js.map +1 -1
- package/dist/crud/relations/helpers.d.ts +9 -1
- package/dist/crud/relations/helpers.js +86 -11
- package/dist/crud/relations/helpers.js.map +1 -1
- package/dist/crud/replace-by-id.suite.js +1 -1
- package/dist/crud/replace-by-id.suite.js.map +1 -1
- package/dist/crud/transactions.suite.js +1 -1
- package/dist/crud/transactions.suite.js.map +1 -1
- package/dist/crud-test-suite.js +1 -1
- package/dist/crud-test-suite.js.map +1 -1
- package/dist/helpers.repository-tests.d.ts +1 -1
- package/dist/helpers.repository-tests.js +1 -1
- package/dist/helpers.repository-tests.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.repository-tests.js +1 -1
- package/dist/types.repository-tests.js.map +1 -1
- package/package.json +14 -14
- package/src/crud/create-retrieve.suite.ts +1 -1
- package/src/crud/freeform-properties.suite.ts +10 -6
- package/src/crud/nested-model-properties.suite.ts +1 -1
- package/src/crud/relations/acceptance/belongs-to.inclusion-resolver.polymorphic.relation.acceptance.ts +221 -0
- package/src/crud/relations/acceptance/belongs-to.inclusion-resolver.relation.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/belongs-to.polymorphic.relation.acceptance.ts +88 -0
- package/src/crud/relations/acceptance/belongs-to.relation.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/has-many-inclusion-resolver.relation.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/has-many-through-inclusion-resolver.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/has-many-through-inclusion-resolver.polymorphic.acceptance.ts +255 -0
- package/src/crud/relations/acceptance/has-many-through.relation.acceptance.ts +2 -2
- package/src/crud/relations/acceptance/has-many-through.relation.polymorphic.acceptance.ts +494 -0
- package/src/crud/relations/acceptance/has-many.relation.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/has-one.inclusion-resolver.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/has-one.inclusion-resolver.polymorphic.acceptance.ts +208 -0
- package/src/crud/relations/acceptance/has-one.relation.acceptance.ts +1 -1
- package/src/crud/relations/acceptance/has-one.relation.polymorphic.acceptance.ts +328 -0
- package/src/crud/relations/acceptance/multi-relations-inclusion-resolver.relation.acceptance.ts +1 -1
- package/src/crud/relations/fixtures/models/address.model.ts +1 -1
- package/src/crud/relations/fixtures/models/cart-item.model.ts +1 -1
- package/src/crud/relations/fixtures/models/contact.model.ts +56 -0
- package/src/crud/relations/fixtures/models/customer-cart-item-link.model.ts +1 -1
- package/src/crud/relations/fixtures/models/customer-promotion-link.model.ts +52 -0
- package/src/crud/relations/fixtures/models/customer.model.ts +40 -10
- package/src/crud/relations/fixtures/models/index.ts +7 -1
- package/src/crud/relations/fixtures/models/order.model.ts +1 -1
- package/src/crud/relations/fixtures/models/payment-method.model.ts +118 -0
- package/src/crud/relations/fixtures/models/promotion.model.ts +67 -0
- package/src/crud/relations/fixtures/models/shipment.model.ts +1 -1
- package/src/crud/relations/fixtures/models/stakeholder.model.ts +33 -0
- package/src/crud/relations/fixtures/models/supplier.model.ts +35 -0
- package/src/crud/relations/fixtures/models/user-link.model.ts +1 -1
- package/src/crud/relations/fixtures/models/user.model.ts +1 -1
- package/src/crud/relations/fixtures/repositories/address.repository.ts +1 -1
- package/src/crud/relations/fixtures/repositories/cart-item.repository.ts +1 -1
- package/src/crud/relations/fixtures/repositories/contact.repository.ts +44 -0
- package/src/crud/relations/fixtures/repositories/customer-cart-item-link.repository.ts +1 -1
- package/src/crud/relations/fixtures/repositories/customer-promotion-link.repository.ts +20 -0
- package/src/crud/relations/fixtures/repositories/customer.repository.ts +48 -1
- package/src/crud/relations/fixtures/repositories/index.ts +7 -2
- package/src/crud/relations/fixtures/repositories/order.repository.ts +1 -1
- package/src/crud/relations/fixtures/repositories/payment-method.repository.ts +118 -0
- package/src/crud/relations/fixtures/repositories/promotion.repository.ts +37 -0
- package/src/crud/relations/fixtures/repositories/shipment.repository.ts +1 -1
- package/src/crud/relations/fixtures/repositories/supplier.repository.ts +40 -0
- package/src/crud/relations/fixtures/repositories/user-link.repository.ts +1 -1
- package/src/crud/relations/fixtures/repositories/user.repository.ts +1 -1
- package/src/crud/relations/helpers.ts +201 -31
- package/src/crud/replace-by-id.suite.ts +1 -1
- package/src/crud/transactions.suite.ts +1 -1
- package/src/crud-test-suite.ts +1 -1
- package/src/helpers.repository-tests.ts +2 -2
- package/src/index.ts +1 -1
- package/src/types.repository-tests.ts +1 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019,2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
belongsTo,
|
|
8
|
-
Entity,
|
|
9
8
|
EntityCrudRepository,
|
|
10
9
|
hasMany,
|
|
11
10
|
HasManyRepositoryFactory,
|
|
@@ -19,18 +18,19 @@ import {BelongsToAccessor} from '@loopback/repository/src';
|
|
|
19
18
|
import {MixedIdType} from '../../../../helpers.repository-tests';
|
|
20
19
|
import {Address, AddressWithRelations} from './address.model';
|
|
21
20
|
import {CartItem, CartItemWithRelations} from './cart-item.model';
|
|
21
|
+
import {Contact, ContactWithRelations} from './contact.model';
|
|
22
22
|
import {CustomerCartItemLink} from './customer-cart-item-link.model';
|
|
23
|
+
import {CustomerPromotionLink} from './customer-promotion-link.model';
|
|
23
24
|
import {Order, OrderWithRelations} from './order.model';
|
|
25
|
+
import {
|
|
26
|
+
PaymentMethod,
|
|
27
|
+
PaymentMethodWithRelations,
|
|
28
|
+
} from './payment-method.model';
|
|
29
|
+
import {Promotion, PromotionWithRelations} from './promotion.model';
|
|
30
|
+
import {Stakeholder} from './stakeholder.model';
|
|
24
31
|
|
|
25
32
|
@model()
|
|
26
|
-
export class Customer extends
|
|
27
|
-
@property({
|
|
28
|
-
id: true,
|
|
29
|
-
generated: true,
|
|
30
|
-
useDefaultIdType: true,
|
|
31
|
-
})
|
|
32
|
-
id: MixedIdType;
|
|
33
|
-
|
|
33
|
+
export class Customer extends Stakeholder {
|
|
34
34
|
@property({
|
|
35
35
|
type: 'string',
|
|
36
36
|
})
|
|
@@ -50,6 +50,25 @@ export class Customer extends Entity {
|
|
|
50
50
|
|
|
51
51
|
@hasMany(() => CartItem, {through: {model: () => CustomerCartItemLink}})
|
|
52
52
|
cartItems: CartItem[];
|
|
53
|
+
|
|
54
|
+
@hasMany(() => Promotion, {
|
|
55
|
+
through: {
|
|
56
|
+
model: () => CustomerPromotionLink,
|
|
57
|
+
keyTo: 'promotion_id',
|
|
58
|
+
polymorphic: {discriminator: 'promotiontype'},
|
|
59
|
+
},
|
|
60
|
+
})
|
|
61
|
+
promotions: Promotion[];
|
|
62
|
+
|
|
63
|
+
@hasOne(() => PaymentMethod, {polymorphic: true})
|
|
64
|
+
paymentMethod: PaymentMethod;
|
|
65
|
+
|
|
66
|
+
@property({
|
|
67
|
+
type: 'string',
|
|
68
|
+
required: true,
|
|
69
|
+
default: 'CreditCard',
|
|
70
|
+
})
|
|
71
|
+
paymentMethodType: string;
|
|
53
72
|
}
|
|
54
73
|
|
|
55
74
|
export interface CustomerRelations {
|
|
@@ -58,6 +77,9 @@ export interface CustomerRelations {
|
|
|
58
77
|
customers?: CustomerWithRelations[];
|
|
59
78
|
parentCustomer?: CustomerWithRelations;
|
|
60
79
|
cartItems?: CartItemWithRelations[];
|
|
80
|
+
paymentMethod: PaymentMethodWithRelations;
|
|
81
|
+
promotions?: PromotionWithRelations[];
|
|
82
|
+
contact?: ContactWithRelations;
|
|
61
83
|
}
|
|
62
84
|
|
|
63
85
|
export type CustomerWithRelations = Customer & CustomerRelations;
|
|
@@ -75,4 +97,12 @@ export interface CustomerRepository
|
|
|
75
97
|
CustomerCartItemLink,
|
|
76
98
|
MixedIdType
|
|
77
99
|
>;
|
|
100
|
+
promotions: HasManyThroughRepositoryFactory<
|
|
101
|
+
Promotion,
|
|
102
|
+
MixedIdType,
|
|
103
|
+
CustomerPromotionLink,
|
|
104
|
+
MixedIdType
|
|
105
|
+
>;
|
|
106
|
+
paymentMethod: HasOneRepositoryFactory<PaymentMethod, MixedIdType>;
|
|
107
|
+
contact: HasOneRepositoryFactory<Contact, MixedIdType>;
|
|
78
108
|
}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019,2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
5
5
|
|
|
6
6
|
export * from './address.model';
|
|
7
7
|
export * from './cart-item.model';
|
|
8
|
+
export * from './contact.model';
|
|
8
9
|
export * from './customer-cart-item-link.model';
|
|
10
|
+
export * from './customer-promotion-link.model';
|
|
9
11
|
export * from './customer.model';
|
|
10
12
|
export * from './order.model';
|
|
13
|
+
export * from './payment-method.model';
|
|
14
|
+
export * from './promotion.model';
|
|
11
15
|
export * from './shipment.model';
|
|
16
|
+
export * from './stakeholder.model';
|
|
17
|
+
export * from './supplier.model';
|
|
12
18
|
export * from './user-link.model';
|
|
13
19
|
export * from './user.model';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019,2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository-tests
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
belongsTo,
|
|
8
|
+
Entity,
|
|
9
|
+
EntityCrudRepository,
|
|
10
|
+
hasOne,
|
|
11
|
+
HasOneRepositoryFactory,
|
|
12
|
+
model,
|
|
13
|
+
property,
|
|
14
|
+
} from '@loopback/repository';
|
|
15
|
+
import {BelongsToAccessor} from '@loopback/repository/src';
|
|
16
|
+
import {Customer, CustomerWithRelations} from '.';
|
|
17
|
+
import {MixedIdType} from '../../../../helpers.repository-tests';
|
|
18
|
+
import {Stakeholder} from './stakeholder.model';
|
|
19
|
+
|
|
20
|
+
@model()
|
|
21
|
+
export class PaymentMethod extends Entity {
|
|
22
|
+
@property({
|
|
23
|
+
id: true,
|
|
24
|
+
generated: true,
|
|
25
|
+
useDefaultIdType: true,
|
|
26
|
+
})
|
|
27
|
+
id: MixedIdType;
|
|
28
|
+
|
|
29
|
+
@belongsTo(() => Stakeholder)
|
|
30
|
+
customerId: MixedIdType;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface PaymentMethodRelations {
|
|
34
|
+
customer?: CustomerWithRelations[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export type PaymentMethodWithRelations = PaymentMethod & PaymentMethodRelations;
|
|
38
|
+
|
|
39
|
+
@model()
|
|
40
|
+
export class CardInfo extends Entity {
|
|
41
|
+
@property({
|
|
42
|
+
id: true,
|
|
43
|
+
generated: true,
|
|
44
|
+
useDefaultIdType: true,
|
|
45
|
+
})
|
|
46
|
+
id: MixedIdType;
|
|
47
|
+
|
|
48
|
+
@belongsTo(() => CreditCard)
|
|
49
|
+
creditCardId: MixedIdType;
|
|
50
|
+
|
|
51
|
+
@property({
|
|
52
|
+
type: 'string',
|
|
53
|
+
required: true,
|
|
54
|
+
default: 'default holder',
|
|
55
|
+
})
|
|
56
|
+
cardHolder: string;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface CardInfoRelations {
|
|
60
|
+
creditCard?: CreditCardWithRelations[];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export type CardInfoWithRelations = CardInfo & CardInfoRelations;
|
|
64
|
+
|
|
65
|
+
@model()
|
|
66
|
+
export class CreditCard extends PaymentMethod {
|
|
67
|
+
@property({
|
|
68
|
+
type: 'number',
|
|
69
|
+
required: true,
|
|
70
|
+
default: 0,
|
|
71
|
+
})
|
|
72
|
+
cardNumber: number;
|
|
73
|
+
|
|
74
|
+
@hasOne(() => CardInfo)
|
|
75
|
+
cardInfo: CardInfo;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export interface CreditCardRelations {
|
|
79
|
+
customer?: CustomerWithRelations[];
|
|
80
|
+
cardInfo: CardInfoWithRelations;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type CreditCardWithRelations = CreditCard & CreditCardRelations;
|
|
84
|
+
|
|
85
|
+
@model()
|
|
86
|
+
export class Cash extends PaymentMethod {
|
|
87
|
+
@property({
|
|
88
|
+
type: 'string',
|
|
89
|
+
required: true,
|
|
90
|
+
default: 'default cash detail',
|
|
91
|
+
})
|
|
92
|
+
detail: string;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
export interface CashRelations {
|
|
96
|
+
customer?: CustomerWithRelations[];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export type CashWithRelations = Cash & CashRelations;
|
|
100
|
+
|
|
101
|
+
export interface CreditCardRepository
|
|
102
|
+
extends EntityCrudRepository<CreditCard, typeof CreditCard.prototype.id> {
|
|
103
|
+
// define additional members like relation methods here
|
|
104
|
+
customer: BelongsToAccessor<Customer, MixedIdType>;
|
|
105
|
+
cardInfo: HasOneRepositoryFactory<CardInfo, MixedIdType>;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export interface CashRepository
|
|
109
|
+
extends EntityCrudRepository<Cash, typeof Cash.prototype.id> {
|
|
110
|
+
// define additional members like relation methods here
|
|
111
|
+
customer: BelongsToAccessor<Customer, MixedIdType>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface CardInfoRepository
|
|
115
|
+
extends EntityCrudRepository<CardInfo, typeof CardInfo.prototype.id> {
|
|
116
|
+
// define additional members like relation methods here
|
|
117
|
+
creditCard: BelongsToAccessor<CreditCard, MixedIdType>;
|
|
118
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository-tests
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
Entity,
|
|
8
|
+
EntityCrudRepository,
|
|
9
|
+
model,
|
|
10
|
+
property,
|
|
11
|
+
} from '@loopback/repository';
|
|
12
|
+
import {MixedIdType} from '../../../../helpers.repository-tests';
|
|
13
|
+
|
|
14
|
+
@model()
|
|
15
|
+
export class Promotion extends Entity {
|
|
16
|
+
@property({
|
|
17
|
+
id: true,
|
|
18
|
+
generated: true,
|
|
19
|
+
useDefaultIdType: true,
|
|
20
|
+
})
|
|
21
|
+
id: MixedIdType;
|
|
22
|
+
|
|
23
|
+
@property({
|
|
24
|
+
type: 'string',
|
|
25
|
+
})
|
|
26
|
+
description: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface PromotionRelations {}
|
|
30
|
+
|
|
31
|
+
export type PromotionWithRelations = Promotion & PromotionRelations;
|
|
32
|
+
|
|
33
|
+
export interface PromotionRepository
|
|
34
|
+
extends EntityCrudRepository<Promotion, typeof Promotion.prototype.id> {}
|
|
35
|
+
|
|
36
|
+
@model()
|
|
37
|
+
export class FreeDelivery extends Promotion {
|
|
38
|
+
@property({
|
|
39
|
+
type: 'string',
|
|
40
|
+
})
|
|
41
|
+
name: string;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface FreeDeliveryRelations {}
|
|
45
|
+
|
|
46
|
+
export type FreeDeliveryWithRelations = FreeDelivery & FreeDeliveryRelations;
|
|
47
|
+
|
|
48
|
+
export interface FreeDeliveryRepository
|
|
49
|
+
extends EntityCrudRepository<
|
|
50
|
+
FreeDelivery,
|
|
51
|
+
typeof FreeDelivery.prototype.id
|
|
52
|
+
> {}
|
|
53
|
+
|
|
54
|
+
@model()
|
|
55
|
+
export class HalfPrice extends Promotion {
|
|
56
|
+
@property({
|
|
57
|
+
type: 'string',
|
|
58
|
+
})
|
|
59
|
+
name: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export interface HalfPriceRelations {}
|
|
63
|
+
|
|
64
|
+
export type HalfPriceWithRelations = HalfPrice & HalfPriceRelations;
|
|
65
|
+
|
|
66
|
+
export interface HalfPriceRepository
|
|
67
|
+
extends EntityCrudRepository<HalfPrice, typeof HalfPrice.prototype.id> {}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository-tests
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {Entity, hasOne, model, property} from '@loopback/repository';
|
|
7
|
+
import {MixedIdType} from '../../../../helpers.repository-tests';
|
|
8
|
+
import {Contact} from './contact.model';
|
|
9
|
+
|
|
10
|
+
@model()
|
|
11
|
+
export class Stakeholder extends Entity {
|
|
12
|
+
@property({
|
|
13
|
+
id: true,
|
|
14
|
+
generated: true,
|
|
15
|
+
useDefaultIdType: true,
|
|
16
|
+
})
|
|
17
|
+
id: MixedIdType;
|
|
18
|
+
|
|
19
|
+
@hasOne(() => Contact)
|
|
20
|
+
contact: Contact;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// export interface StakeholderRelations {
|
|
24
|
+
// contact: ContactWithRelations;
|
|
25
|
+
// }
|
|
26
|
+
|
|
27
|
+
// export type StakeholderWithRelations = Stakeholder & StakeholderRelations;
|
|
28
|
+
|
|
29
|
+
// export interface StakeholderRepository
|
|
30
|
+
// extends EntityCrudRepository<Stakeholder, typeof Stakeholder.prototype.id> {
|
|
31
|
+
// // define additional members like relation methods here
|
|
32
|
+
// contact: HasOneRepositoryFactory<Contact, MixedIdType>;
|
|
33
|
+
// }
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository-tests
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {
|
|
7
|
+
EntityCrudRepository,
|
|
8
|
+
HasOneRepositoryFactory,
|
|
9
|
+
model,
|
|
10
|
+
property,
|
|
11
|
+
} from '@loopback/repository';
|
|
12
|
+
import {MixedIdType} from '../../../../helpers.repository-tests';
|
|
13
|
+
import {Contact} from './contact.model';
|
|
14
|
+
import {PaymentMethodWithRelations} from './payment-method.model';
|
|
15
|
+
import {Stakeholder} from './stakeholder.model';
|
|
16
|
+
|
|
17
|
+
@model()
|
|
18
|
+
export class Supplier extends Stakeholder {
|
|
19
|
+
@property({
|
|
20
|
+
type: 'string',
|
|
21
|
+
})
|
|
22
|
+
name: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface SupplierRelations {
|
|
26
|
+
contact?: PaymentMethodWithRelations;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export type SupplierWithRelations = Supplier & SupplierRelations;
|
|
30
|
+
|
|
31
|
+
export interface SupplierRepository
|
|
32
|
+
extends EntityCrudRepository<Supplier, typeof Supplier.prototype.id> {
|
|
33
|
+
// define additional members like relation methods here
|
|
34
|
+
contact: HasOneRepositoryFactory<Contact, MixedIdType>;
|
|
35
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository-tests
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {Getter} from '@loopback/core';
|
|
7
|
+
import {
|
|
8
|
+
BelongsToAccessor,
|
|
9
|
+
BelongsToDefinition,
|
|
10
|
+
createBelongsToAccessor,
|
|
11
|
+
juggler,
|
|
12
|
+
} from '@loopback/repository';
|
|
13
|
+
import {CrudRepositoryCtor} from '../../../..';
|
|
14
|
+
import {Contact, ContactRelations, Stakeholder} from '../models';
|
|
15
|
+
|
|
16
|
+
export function createContactRepo(repoClass: CrudRepositoryCtor) {
|
|
17
|
+
return class ContactRepository extends repoClass<
|
|
18
|
+
Contact,
|
|
19
|
+
typeof Contact.prototype.id,
|
|
20
|
+
ContactRelations
|
|
21
|
+
> {
|
|
22
|
+
public readonly stakeholder: BelongsToAccessor<
|
|
23
|
+
Stakeholder,
|
|
24
|
+
typeof Contact.prototype.id
|
|
25
|
+
>;
|
|
26
|
+
|
|
27
|
+
constructor(
|
|
28
|
+
db: juggler.DataSource,
|
|
29
|
+
stakeholderRepositoryGetter: {
|
|
30
|
+
[repoType: string]: Getter<typeof repoClass.prototype>;
|
|
31
|
+
},
|
|
32
|
+
) {
|
|
33
|
+
super(Contact, db);
|
|
34
|
+
// create a belongsto relation from this public method
|
|
35
|
+
const stakeholderMeta =
|
|
36
|
+
this.entityClass.definition.relations['stakeholder'];
|
|
37
|
+
this.stakeholder = createBelongsToAccessor(
|
|
38
|
+
stakeholderMeta as BelongsToDefinition,
|
|
39
|
+
stakeholderRepositoryGetter,
|
|
40
|
+
this,
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2020. All Rights Reserved.
|
|
2
|
+
// Node module: @loopback/repository-tests
|
|
3
|
+
// This file is licensed under the MIT License.
|
|
4
|
+
// License text available at https://opensource.org/licenses/MIT
|
|
5
|
+
|
|
6
|
+
import {juggler} from '@loopback/repository';
|
|
7
|
+
import {CrudRepositoryCtor} from '../../../..';
|
|
8
|
+
import {CustomerPromotionLink, CustomerPromotionLinkRelations} from '../models';
|
|
9
|
+
// create the CustomerCartItemLinkRepo by calling this func so that it can be extended from CrudRepositoryCtor
|
|
10
|
+
export function createCustomerPromotionLinkRepo(repoClass: CrudRepositoryCtor) {
|
|
11
|
+
return class CustomerPromotionLinkRepository extends repoClass<
|
|
12
|
+
CustomerPromotionLink,
|
|
13
|
+
typeof CustomerPromotionLink.prototype.id,
|
|
14
|
+
CustomerPromotionLinkRelations
|
|
15
|
+
> {
|
|
16
|
+
constructor(db: juggler.DataSource) {
|
|
17
|
+
super(CustomerPromotionLink, db);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019,2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
@@ -22,10 +22,14 @@ import {CrudRepositoryCtor} from '../../../../types.repository-tests';
|
|
|
22
22
|
import {
|
|
23
23
|
Address,
|
|
24
24
|
CartItem,
|
|
25
|
+
Contact,
|
|
25
26
|
Customer,
|
|
26
27
|
CustomerCartItemLink,
|
|
28
|
+
CustomerPromotionLink,
|
|
27
29
|
CustomerRelations,
|
|
28
30
|
Order,
|
|
31
|
+
PaymentMethod,
|
|
32
|
+
Promotion,
|
|
29
33
|
} from '../models';
|
|
30
34
|
|
|
31
35
|
// create the CustomerRepo by calling this func so that it can be extended from CrudRepositoryCtor
|
|
@@ -58,12 +62,37 @@ export function createCustomerRepo(repoClass: CrudRepositoryCtor) {
|
|
|
58
62
|
typeof CustomerCartItemLink.prototype.id
|
|
59
63
|
>;
|
|
60
64
|
|
|
65
|
+
public readonly promotions: HasManyThroughRepositoryFactory<
|
|
66
|
+
Promotion,
|
|
67
|
+
typeof Promotion.prototype.id,
|
|
68
|
+
CustomerPromotionLink,
|
|
69
|
+
typeof CustomerPromotionLink.prototype.id
|
|
70
|
+
>;
|
|
71
|
+
|
|
72
|
+
public readonly paymentMethod: HasOneRepositoryFactory<
|
|
73
|
+
PaymentMethod,
|
|
74
|
+
typeof Customer.prototype.id
|
|
75
|
+
>;
|
|
76
|
+
|
|
77
|
+
public readonly contact: HasOneRepositoryFactory<
|
|
78
|
+
Contact,
|
|
79
|
+
typeof Customer.prototype.id
|
|
80
|
+
>;
|
|
81
|
+
|
|
61
82
|
constructor(
|
|
62
83
|
db: juggler.DataSource,
|
|
63
84
|
orderRepositoryGetter: Getter<typeof repoClass.prototype>,
|
|
64
85
|
addressRepositoryGetter: Getter<typeof repoClass.prototype>,
|
|
65
86
|
cartItemRepositoryGetter: Getter<typeof repoClass.prototype>,
|
|
66
87
|
customerCartItemLinkRepositoryGetter: Getter<typeof repoClass.prototype>,
|
|
88
|
+
promotionRepositoryGetter: {
|
|
89
|
+
[repoType: string]: Getter<typeof repoClass.prototype>;
|
|
90
|
+
},
|
|
91
|
+
customerPromotionLinkRepositoryGetter: Getter<typeof repoClass.prototype>,
|
|
92
|
+
paymentMethodRepositoryGetter: {
|
|
93
|
+
[repoType: string]: Getter<typeof repoClass.prototype>;
|
|
94
|
+
},
|
|
95
|
+
contactRepositoryGetter: Getter<typeof repoClass.prototype>,
|
|
67
96
|
) {
|
|
68
97
|
super(Customer, db);
|
|
69
98
|
const ordersMeta = this.entityClass.definition.relations['orders'];
|
|
@@ -95,6 +124,24 @@ export function createCustomerRepo(repoClass: CrudRepositoryCtor) {
|
|
|
95
124
|
cartItemRepositoryGetter,
|
|
96
125
|
customerCartItemLinkRepositoryGetter,
|
|
97
126
|
);
|
|
127
|
+
const promotionsMeta =
|
|
128
|
+
this.entityClass.definition.relations['promotions'];
|
|
129
|
+
this.promotions = createHasManyThroughRepositoryFactory(
|
|
130
|
+
promotionsMeta as HasManyDefinition,
|
|
131
|
+
promotionRepositoryGetter,
|
|
132
|
+
customerPromotionLinkRepositoryGetter,
|
|
133
|
+
);
|
|
134
|
+
const paymentMethodMeta =
|
|
135
|
+
this.entityClass.definition.relations['paymentMethod'];
|
|
136
|
+
this.paymentMethod = createHasOneRepositoryFactory(
|
|
137
|
+
paymentMethodMeta as HasOneDefinition,
|
|
138
|
+
paymentMethodRepositoryGetter,
|
|
139
|
+
);
|
|
140
|
+
const contactMeta = this.entityClass.definition.relations['contact'];
|
|
141
|
+
this.contact = createHasOneRepositoryFactory(
|
|
142
|
+
contactMeta as HasOneDefinition,
|
|
143
|
+
contactRepositoryGetter,
|
|
144
|
+
);
|
|
98
145
|
}
|
|
99
146
|
};
|
|
100
147
|
}
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019,2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|
|
5
5
|
|
|
6
6
|
export * from './address.repository';
|
|
7
7
|
export * from './cart-item.repository';
|
|
8
|
+
export * from './contact.repository';
|
|
8
9
|
export * from './customer-cart-item-link.repository';
|
|
10
|
+
export * from './customer-promotion-link.repository';
|
|
9
11
|
export * from './customer.repository';
|
|
10
12
|
export * from './order.repository';
|
|
13
|
+
export * from './payment-method.repository';
|
|
14
|
+
export * from './promotion.repository';
|
|
11
15
|
export * from './shipment.repository';
|
|
12
|
-
export * from './
|
|
16
|
+
export * from './supplier.repository';
|
|
13
17
|
export * from './user-link.repository';
|
|
18
|
+
export * from './user.repository';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright IBM Corp. 2019,2020. All Rights Reserved.
|
|
1
|
+
// Copyright IBM Corp. and LoopBack contributors 2019,2020. All Rights Reserved.
|
|
2
2
|
// Node module: @loopback/repository-tests
|
|
3
3
|
// This file is licensed under the MIT License.
|
|
4
4
|
// License text available at https://opensource.org/licenses/MIT
|