Skip to content

Commit 68983ad

Browse files
committed
factory style improvements
1 parent 69e7397 commit 68983ad

File tree

5 files changed

+90
-91
lines changed

5 files changed

+90
-91
lines changed
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import {ApiFactory} from "./ApiFactory";
2-
import {InvoiceLineFactory} from "./InvoiceLineFactory";
3-
4-
export class InvoiceFactory extends ApiFactory {
5-
defaultAttrs = {
6-
recipientId: null, // Must be passed when creating resource
7-
description: "Test Invoice",
8-
externalId: "testInvoice",
9-
invoiceDate: "2020-01-01",
10-
dueDate: "2020-01-01"
11-
}
12-
13-
public async createResource(attrs: any = {}) {
14-
return await this.apiClient.invoice.create({
15-
...this.defaultAttrs,
16-
...attrs
17-
});
18-
}
19-
}
1+
import { ApiFactory } from "./ApiFactory";
2+
import { InvoiceLineFactory } from "./InvoiceLineFactory";
3+
4+
export class InvoiceFactory extends ApiFactory {
5+
defaultAttrs = {
6+
recipientId: undefined, // Must be passed when creating resource
7+
description: "Test Invoice",
8+
externalId: "testInvoice",
9+
invoiceDate: "2020-01-01",
10+
dueDate: "2020-01-01",
11+
};
12+
13+
public async createResource(attrs: any = {}) {
14+
return this.apiClient.invoice.create({
15+
...this.defaultAttrs,
16+
...attrs,
17+
});
18+
}
19+
}
Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,28 @@
1-
import {ApiFactory} from "./ApiFactory";
2-
import {Amount} from "../../../lib/types";
3-
import {InvoiceLineCategory} from "../../../lib/InvoiceLine";
4-
5-
6-
export class InvoiceLineFactory extends ApiFactory {
7-
static defaultAttrs = {
8-
unitAmount: {
9-
value: "100",
10-
currency: "USD",
11-
},
12-
category: InvoiceLineCategory.services,
13-
description: "Test Invoice Line",
14-
externalId: "testInvoiceLine",
15-
taxReportable: true,
16-
forceUsTaxActivity: false,
17-
tags: ['test'],
18-
}
19-
20-
public async createResource(attrs: any = {}) {
21-
return await this.apiClient.invoiceLine.create(
22-
attrs.invoice.id,
23-
[{
24-
...InvoiceLineFactory.defaultAttrs,
25-
...attrs
26-
}],
27-
);
28-
}
29-
}
1+
import { ApiFactory } from "./ApiFactory";
2+
import { Amount } from "../../../lib/types";
3+
import { InvoiceLineCategory } from "../../../lib/InvoiceLine";
4+
5+
export class InvoiceLineFactory extends ApiFactory {
6+
static defaultAttrs = {
7+
unitAmount: {
8+
value: "100",
9+
currency: "USD",
10+
},
11+
category: InvoiceLineCategory.services,
12+
description: "Test Invoice Line",
13+
externalId: "testInvoiceLine",
14+
taxReportable: true,
15+
forceUsTaxActivity: false,
16+
tags: ['test'],
17+
};
18+
19+
public async createResource(attrs: any = {}) {
20+
return this.apiClient.invoiceLine.create(
21+
attrs.invoice.id,
22+
[{
23+
...InvoiceLineFactory.defaultAttrs,
24+
...attrs,
25+
}],
26+
);
27+
}
28+
}

test/integration/factories/PaymentFactory.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import {ApiFactory, InvalidAttributeError} from "./ApiFactory";
1+
import { ApiFactory, InvalidAttributeError } from "./ApiFactory";
22

33
export class PaymentFactory extends ApiFactory {
44
private defaultAttrs = {
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import {ApiFactory} from "./ApiFactory";
2-
3-
export class RecipientAccountFactory extends ApiFactory {
4-
private defaultAttrs = {
5-
type: "bank-transfer",
6-
currency: "EUR",
7-
iban: "DE89 3704 0044 0532 0130 00"
8-
}
9-
10-
public async createResource(attrs: any = {}) {
11-
return await this.apiClient.recipientAccount.create(
12-
attrs.recipient.id,
13-
{
14-
...this.defaultAttrs,
15-
...attrs
16-
}
17-
);
18-
}
19-
}
1+
import { ApiFactory } from "./ApiFactory";
2+
3+
export class RecipientAccountFactory extends ApiFactory {
4+
private defaultAttrs = {
5+
type: "bank-transfer",
6+
currency: "EUR",
7+
iban: "DE89 3704 0044 0532 0130 00",
8+
};
9+
10+
public async createResource(attrs: any = {}) {
11+
return this.apiClient.recipientAccount.create(
12+
attrs.recipient.id,
13+
{
14+
...this.defaultAttrs,
15+
...attrs,
16+
},
17+
);
18+
}
19+
}
Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
import {ApiFactory} from "./ApiFactory";
2-
3-
export class RecipientFactory extends ApiFactory {
4-
defaultAttrs = {
5-
type: "individual",
6-
firstName: "Tom",
7-
lastName: `Jones`,
8-
9-
address: {
10-
street1: "123 Wolfstrasse",
11-
city: "Berlin",
12-
country: "DE",
13-
postalCode: "123123",
14-
},
15-
};
16-
17-
public async createResource(attrs: any = {}) {
18-
return await this.apiClient.recipient.create({
19-
...this.defaultAttrs,
20-
...attrs
21-
});
22-
}
23-
}
1+
import { ApiFactory } from "./ApiFactory";
2+
3+
export class RecipientFactory extends ApiFactory {
4+
defaultAttrs = {
5+
type: "individual",
6+
firstName: "Tom",
7+
lastName: `Jones`,
8+
9+
address: {
10+
street1: "123 Wolfstrasse",
11+
city: "Berlin",
12+
country: "DE",
13+
postalCode: "123123",
14+
},
15+
};
16+
17+
public async createResource(attrs: any = {}) {
18+
return this.apiClient.recipient.create({
19+
...this.defaultAttrs,
20+
...attrs,
21+
});
22+
}
23+
}

0 commit comments

Comments
 (0)