Skip to content

Commit 775cd74

Browse files
github1github1
authored andcommitted
do not add name property to message object
1 parent 186a900 commit 775cd74

File tree

3 files changed

+31
-24
lines changed

3 files changed

+31
-24
lines changed

src/backends/http/http-support.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,13 +97,13 @@ describe('http-support', () => {
9797
it('can send the message name as a query param', async () => {
9898
await p1.subject('test-sub-2')
9999
// tslint:disable-next-line:no-any
100-
.on('test-http', (msg : any) => {
101-
return {echo: msg};
100+
.on('test-http', (msg : any, header : SubjectMessageHeader) => {
101+
return {echo: msg, name: header.name};
102102
})
103103
.awaitRegistration();
104104
const res : Response = await sendHttp(`${port}/api/test-sub-2/123?messageName=test-http`, {});
105105
const resJson = await res.json();
106-
expect(resJson.echo.name)
106+
expect(resJson.name)
107107
.toBe('test-http');
108108
});
109109
it('can broadcast messages', async () => {

src/backends/http/http-support.ts

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {
2-
HttpMessageHeader,
32
MeshBackend,
43
MeshBackendBase,
54
MeshBackendProvider,
65
MeshBackendProvision,
76
MeshVoidResponse,
87
SubjectMessage,
98
SubjectMessageEnvelope,
9+
SubjectMessageHeader,
1010
SubjectMessageOptions,
1111
toMeshBackendProvision
1212
} from '../../';
@@ -21,8 +21,8 @@ const log : debug.Debugger = debug('meshage')
2121
.extend('http');
2222

2323
interface PreparedHttpMessage {
24-
message: SubjectMessage;
25-
headerData: HttpMessageHeader;
24+
message : SubjectMessage;
25+
headerData : SubjectMessageHeader;
2626
}
2727

2828
class HttpMeshBackend extends MeshBackendBase {
@@ -71,13 +71,19 @@ class HttpMeshBackend extends MeshBackendBase {
7171
// tslint:disable-next-line:no-unsafe-any
7272
const messageName : string = query.messageName ? `${query.messageName}` : req.body.name;
7373
return {
74-
message: {...req.body, name: messageName},
74+
message: {...req.body},
7575
headerData: {
76-
headers: req.headers,
77-
url: req.url,
78-
publicUrl: reqUrl,
79-
params,
80-
query
76+
uid: '', // replaced later,
77+
subject: params.subject,
78+
partitionKey: params.partitionKey || query.partitionKey,
79+
name: messageName,
80+
http: {
81+
headers: req.headers,
82+
url: req.url,
83+
publicUrl: reqUrl,
84+
params,
85+
query
86+
}
8187
}
8288
};
8389
}
@@ -162,17 +168,17 @@ class HttpMeshBackend extends MeshBackendBase {
162168
async (req : express.Request, res : express.Response) => {
163169
try {
164170
const httpMessage : PreparedHttpMessage = HttpMeshBackend.prepareHttpMessage(req);
165-
if (!httpMessage.message.name) {
171+
if (!httpMessage.headerData.name) {
166172
res.status(400)
167173
.send({error: 'Missing message name'});
168174
} else {
169-
const result = await this.send(httpMessage.headerData.params.subject,
175+
const result = await this.send(httpMessage.headerData.subject,
170176
undefined,
171177
httpMessage.message,
172178
{
173-
wait: req.query.wait === 'true' || req.query.wait === undefined,
174-
timeout: req.query.timeout === undefined ? undefined : parseInt(`${req.query.timeout}`, 10),
175-
additionalHeaderData: {http: httpMessage.headerData}
179+
wait: httpMessage.headerData.http.query.wait === 'true' || httpMessage.headerData.http.query.wait === undefined,
180+
timeout: httpMessage.headerData.http.query.timeout === undefined ? undefined : parseInt(`${httpMessage.headerData.http.query.timeout}`, 10),
181+
additionalHeaderData: httpMessage.headerData
176182
}, true);
177183
HttpMeshBackend.prepareHttpResponse(result, res);
178184
}
@@ -185,19 +191,19 @@ class HttpMeshBackend extends MeshBackendBase {
185191
async (req : express.Request, res : express.Response) => {
186192
try {
187193
const httpMessage : PreparedHttpMessage = HttpMeshBackend.prepareHttpMessage(req);
188-
if (!httpMessage.message.name) {
194+
if (!httpMessage.headerData.name) {
189195
res.status(400)
190196
.send({error: 'Missing message name'});
191197
} else {
192198
const result = await this.send(
193-
httpMessage.headerData.params.subject,
194-
httpMessage.headerData.params.partitionKey,
199+
httpMessage.headerData.subject,
200+
httpMessage.headerData.partitionKey,
195201
httpMessage.message,
196202
{
197-
wait: req.query.wait === 'true' || req.query.wait === undefined,
198-
timeout: req.query.timeout === undefined ? undefined : parseInt(`${req.query.timeout}`, 10),
203+
wait: httpMessage.headerData.http.query.wait === 'true' || httpMessage.headerData.http.query.wait === undefined,
204+
timeout: httpMessage.headerData.http.query.timeout === undefined ? undefined : parseInt(`${httpMessage.headerData.http.query.timeout}`, 10),
199205
keepSignals: true,
200-
additionalHeaderData: {http: httpMessage.headerData}
206+
additionalHeaderData: httpMessage.headerData
201207
},
202208
false);
203209
HttpMeshBackend.prepareHttpResponse(result, res);

src/mesh.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,12 +331,13 @@ export abstract class MeshBackendBase implements MeshBackend {
331331
broadcast : boolean) : Promise<T> {
332332
// tslint:disable-next-line:no-parameter-reassignment
333333
options = options || {};
334+
options.additionalHeaderData = options.additionalHeaderData || {};
334335
const messageHeader : SubjectMessageHeader = {
335336
...options.additionalHeaderData,
336337
uid: v4(),
337338
subject,
338339
// tslint:disable-next-line:no-unsafe-any
339-
name: message.name || message.constructor.name,
340+
name: options.additionalHeaderData.name || message.name || message.constructor.name,
340341
partitionKey
341342
};
342343
const messageEnvelope : SubjectMessageEnvelope = {

0 commit comments

Comments
 (0)