Skip to content

Commit 774bb32

Browse files
authored
Merge pull request #231 from companieshouse/ncs-642-fix-put-transaction-response
NCS-642 Put Transaction fix to remove response mapping
2 parents 8ac4728 + 2cb0ad5 commit 774bb32

File tree

2 files changed

+14
-51
lines changed

2 files changed

+14
-51
lines changed

src/services/transaction/service.ts

Lines changed: 13 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -44,37 +44,25 @@ export default class TransactionService {
4444
*
4545
* @param replacment transaction
4646
*/
47-
public async putTransaction (transaction: Transaction): Promise<ApiResponse<Transaction>|ApiErrorResponse> {
48-
if (transaction.id) {
49-
const url = "/transactions/" + transaction.id
50-
51-
const transactionResource: TransactionResource = this.mapToResource(transaction);
52-
const resp = await this.client.httpPut(url, transactionResource);
47+
public async putTransaction (transaction: Transaction): Promise<ApiResponse<Transaction> | ApiErrorResponse> {
48+
const url = "/transactions/" + transaction.id
5349

54-
if (resp.error) {
55-
return {
56-
httpStatusCode: resp.status,
57-
errors: [resp.error]
58-
};
59-
}
50+
const transactionResource: TransactionResource = this.mapToResource(transaction);
51+
const resp = await this.client.httpPut(url, transactionResource);
6052

61-
const resource: ApiResponse<Transaction> = {
62-
headers: resp.headers,
63-
httpStatusCode: resp.status
53+
if (resp.error) {
54+
return {
55+
httpStatusCode: resp.status,
56+
errors: [resp.error]
6457
};
65-
66-
// cast the response body to the expected type
67-
const body: TransactionResource = resp.body as TransactionResource;
68-
69-
this.populateResource(resource, body);
70-
71-
return resource;
7258
}
7359

74-
return {
75-
httpStatusCode: 400,
76-
errors: [{ error: "Cannot update transaction - id not found" }]
60+
const resource: ApiResponse<Transaction> = {
61+
headers: resp.headers,
62+
httpStatusCode: resp.status
7763
};
64+
65+
return resource;
7866
}
7967

8068
private populateResource (resource:Resource<Transaction>, body:TransactionResource) {

test/services/transaction/service.spec.ts

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -122,23 +122,11 @@ describe("transaction", () => {
122122
});
123123

124124
it("put returns successful response", async () => {
125-
const mockResponseBody : TransactionResource = ({
126-
id: "12345678",
127-
company_name: "HELLO LTD",
128-
company_number: "88",
129-
links: {
130-
self: "/self"
131-
},
132-
reference: "ref",
133-
description: "desc"
134-
});
135-
136125
const mockPutResponse = {
137126
headers: {
138127
"X-Payment-Required": "http://link-to-payment"
139128
},
140-
status: 202,
141-
body: mockResponseBody
129+
status: 202
142130
};
143131

144132
sinon.stub(requestClient, "httpPut").resolves(mockPutResponse);
@@ -148,11 +136,6 @@ describe("transaction", () => {
148136
expect(data.httpStatusCode).to.equal(202);
149137
const castedData: ApiResponse<Transaction> = data as ApiResponse<Transaction>;
150138
expect(castedData.headers["X-Payment-Required"]).to.equal("http://link-to-payment");
151-
expect(castedData.resource.companyName).to.equal(mockResponseBody.company_name);
152-
expect(castedData.resource.companyNumber).to.equal(mockResponseBody.company_number);
153-
expect(castedData.resource.links.self).to.equal(mockResponseBody.links.self);
154-
expect(castedData.resource.reference).to.equal(mockResponseBody.reference);
155-
expect(castedData.resource.description).to.equal(mockResponseBody.description);
156139
});
157140

158141
it("put returns an error response on failure", async () => {
@@ -169,12 +152,4 @@ describe("transaction", () => {
169152
const castedData: ApiErrorResponse = data;
170153
expect(castedData.errors[0]).to.equal("Unprocessable Entity");
171154
});
172-
173-
it("put returns an error response if id is not present", async () => {
174-
const transaction: TransactionService = new TransactionService(requestClient);
175-
const data = await transaction.putTransaction({} as Transaction);
176-
expect(data.httpStatusCode).to.equal(400);
177-
const castedData: ApiErrorResponse = data;
178-
expect(castedData.errors[0].error).to.equal("Cannot update transaction - id not found");
179-
});
180155
});

0 commit comments

Comments
 (0)