Skip to content

Commit e669c43

Browse files
authored
Reverting temporary patch fixes to SDK (#59)
* Revert "prevent pubsub message from double wrapping (#56)" This reverts commit 4aee628. * Revert "Additional fix for new payload regarding auth on ref" This reverts commit 45ed071. * Revert "Fix path for new event payload. (#50)" This reverts commit c0d6da5. * fix lodash import error
1 parent 4aee628 commit e669c43

File tree

7 files changed

+32
-31
lines changed

7 files changed

+32
-31
lines changed

src/builder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export class FunctionBuilder {
3030
protected _wrapHandler<EventData, OldRawType>(
3131
handler: (event: Event<EventData>) => PromiseLike<any> | any,
3232
event: string,
33-
additionalMeta?: FirebaseEventMetadata,
33+
additionalMeta: FirebaseEventMetadata,
3434
): TriggerAnnotated & ((raw: OldRawType | RawEvent) => PromiseLike<any> | any) {
3535
const wrapped: any = (payload: OldRawType | RawEvent) => {
3636
const metadata = <FirebaseEventMetadata>_.extend({}, additionalMeta, payload);

src/cloud/pubsub-builder.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,10 @@ export default class CloudPubsubBuilder extends FunctionBuilder {
6464
onPublish(
6565
handler: (event: Event<PubsubMessage>) => PromiseLike<any> | any
6666
): TriggerAnnotated & ((event: RawEvent | any) => PromiseLike<any> | any) {
67-
return this._wrapHandler(handler, 'message');
67+
return this._wrapHandler(handler, 'message', {
68+
action: 'sources/cloud.pubsub/actions/publish',
69+
resource: 'projects/' + process.env.GCLOUD_PROJECT + '/topics/' + this.topic,
70+
});
6871
}
6972

7073
protected _toTrigger(event: string): CloudPubsubTriggerDefinition {
@@ -76,6 +79,13 @@ export default class CloudPubsubBuilder extends FunctionBuilder {
7679
}
7780

7881
protected _dataConstructor(payload: any): PubsubMessage {
79-
return new PubsubMessage(payload.data);
82+
if (this._isEventNewFormat(payload)) {
83+
return new PubsubMessage(payload.data);
84+
}
85+
86+
return new PubsubMessage({
87+
data: new Buffer(JSON.stringify(payload), 'utf8').toString('base64'),
88+
attributes: {},
89+
});
8090
}
8191
}

src/database/builder.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { normalizePath } from '../utils';
66
import { FirebaseEnv } from '../env';
77

88
export interface DatabasePayload {
9-
type?: string;
10-
path?: string;
11-
auth?: AuthMode;
9+
type: string;
10+
path: string;
11+
auth: AuthMode;
1212
data: any;
1313
delta: any;
1414
params?: any;
@@ -69,7 +69,7 @@ export default class DatabaseBuilder extends FunctionBuilder {
6969

7070
protected _dataConstructor(payload: any): DatabaseDeltaSnapshot {
7171
if (this._isEventNewFormat(payload)) {
72-
return new DatabaseDeltaSnapshot(this._apps, payload.data, payload.path, payload.auth);
72+
return new DatabaseDeltaSnapshot(this._apps, payload.data);
7373
}
7474
return new DatabaseDeltaSnapshot(this._apps, payload);
7575
}

src/database/delta-snapshot.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ export default class DatabaseDeltaSnapshot {
1818
private _childPath: string;
1919
private _isPrevious: boolean;
2020

21-
constructor(apps: Apps, eventData?: DatabasePayload, path?: string, auth?: AuthMode) {
21+
constructor(apps: Apps, eventData?: DatabasePayload) {
2222
this._apps = apps;
2323

2424
if (eventData) {
25-
this._path = path || eventData.path;
26-
this._auth = auth || eventData.auth;
25+
this._path = eventData.path;
26+
this._auth = eventData.auth;
2727
this._data = eventData.data;
2828
this._delta = eventData.delta;
2929
this._newData = applyChange(this._data, this._delta);

test/cloud/pubsub-builder.spec.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ describe('CloudHttpBuilder', () => {
7575
};
7676
let raw = new Buffer('{"hello":"world"}', 'utf8').toString('base64');
7777
let event = {
78+
action: 'sources/cloud.pubsub/actions/publish',
7879
data: {
7980
data: raw,
8081
attributes: {
@@ -90,5 +91,15 @@ describe('CloudHttpBuilder', () => {
9091
attributes: {foo: 'bar'},
9192
});
9293
});
94+
95+
it('should preserve message when handling a legacy event', () => {
96+
let handler = (payload: Event<PubsubMessage>) => {
97+
return payload.data.json;
98+
};
99+
let legacyEvent = {message: 'hi'};
100+
let result = subject.onPublish(handler);
101+
env.makeReady();
102+
return expect(result(legacyEvent)).to.eventually.deep.equal({'message': 'hi'});
103+
});
93104
});
94105
});

test/database/builder.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('DatabaseBuilder', () => {
4747
});
4848

4949
env.makeReady();
50-
return handler(<any>{path: '/users/foo', data: null, delta: {foo: 'bar'}});
50+
return handler(<any>{data: null, delta: {foo: 'bar'}});
5151
});
5252

5353
it('should preserve data when handling a legacy event', (done) => {

test/database/delta-snapshot.spec.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,6 @@ describe('DatabaseDeltaSnapshot', () => {
1919
});
2020
};
2121

22-
it('should allow path to be defined by the payload', () => {
23-
let snap = new DatabaseDeltaSnapshot(apps, {data: null, delta: 'foo', path: '/users/foo'});
24-
expect(snap['_path']).to.equal('/users/foo');
25-
});
26-
27-
it('should allow path to be defined by an optional third argument', () => {
28-
let snap = new DatabaseDeltaSnapshot(apps, {data: null, delta: 'foo'}, '/users/foo');
29-
expect(snap['_path']).to.equal('/users/foo');
30-
});
31-
32-
it('should allow auth to be defined by the payload', () => {
33-
let snap = new DatabaseDeltaSnapshot(apps, {data: null, delta: 'foo', path: '/users/foo', auth: {admin: true}});
34-
expect(snap['_auth']).to.deep.equal({admin: true});
35-
});
36-
37-
it('should allow auth to be defined by an optional fourth argument', () => {
38-
let snap = new DatabaseDeltaSnapshot(apps, {data: null, delta: 'foo'}, '/users/foo', {admin: true});
39-
expect(snap['_auth']).to.deep.equal({admin: true});
40-
});
41-
4222
describe('#val(): any', () => {
4323
it('should return child values based on the child path', () => {
4424
populate({a: {b: 'c'}}, {a: {d: 'e'}});

0 commit comments

Comments
 (0)