From d83af483b0331ac373c719499c9955c2f666f674 Mon Sep 17 00:00:00 2001 From: Lauren Long Date: Tue, 12 Sep 2017 16:03:31 -0700 Subject: [PATCH] Remove unnecessary storage shim. --- spec/providers/storage.spec.ts | 34 ---------------------------------- src/providers/analytics.ts | 3 +++ src/providers/storage.ts | 18 +----------------- 3 files changed, 4 insertions(+), 51 deletions(-) diff --git a/spec/providers/storage.spec.ts b/spec/providers/storage.spec.ts index 6afee6368..fa74f1ecf 100644 --- a/spec/providers/storage.spec.ts +++ b/spec/providers/storage.spec.ts @@ -70,40 +70,6 @@ describe('storage.FunctionBuilder', () => { expect(() => storage.bucket('bad/bucket/format')).to.throw(Error); }); - it('should correct nested media links using a single literal slash', () => { - let cloudFunction = storage.object().onChange((event) => { - return event.data.mediaLink; - }); - let badMediaLinkEvent = { - data: { - mediaLink: 'https://www.googleapis.com/storage/v1/b/mybucket.appspot.com' - + '/o/nestedfolder/myobject.file?generation=12345&alt=media', - }, - }; - return cloudFunction(badMediaLinkEvent).then(result => { - expect(result).equals( - 'https://www.googleapis.com/storage/v1/b/mybucket.appspot.com' - + '/o/nestedfolder%2Fmyobject.file?generation=12345&alt=media'); - }); - }); - - it('should correct nested media links using multiple literal slashes', () => { - let cloudFunction = storage.object().onChange((event) => { - return event.data.mediaLink; - }); - let badMediaLinkEvent = { - data: { - mediaLink: 'https://www.googleapis.com/storage/v1/b/mybucket.appspot.com' - + '/o/nestedfolder/anotherfolder/myobject.file?generation=12345&alt=media', - }, - }; - return cloudFunction(badMediaLinkEvent).then(result => { - expect(result).equals( - 'https://www.googleapis.com/storage/v1/b/mybucket.appspot.com' - + '/o/nestedfolder%2Fanotherfolder%2Fmyobject.file?generation=12345&alt=media'); - }); - }); - it('should not mess with media links using non-literal slashes', () => { let cloudFunction = storage.object().onChange((event) => { return event.data.mediaLink; diff --git a/src/providers/analytics.ts b/src/providers/analytics.ts index 11636a595..eaec4b52f 100644 --- a/src/providers/analytics.ts +++ b/src/providers/analytics.ts @@ -63,6 +63,9 @@ export class AnalyticsEventBuilder { handler: (event: Event) => PromiseLike | any ): CloudFunction { const dataConstructor = (raw: Event) => { + if (raw.data instanceof AnalyticsEvent) { + return raw.data; + } return new AnalyticsEvent(raw.data); }; return makeCloudFunction({ diff --git a/src/providers/storage.ts b/src/providers/storage.ts index 75f657b66..60cbbeef5 100644 --- a/src/providers/storage.ts +++ b/src/providers/storage.ts @@ -52,9 +52,6 @@ export class BucketBuilder { } } -// A RegExp that matches on a GCS media link that points at a _nested_ object (one that uses a path/with/slashes). -const nestedMediaLinkRE = new RegExp('https://www.googleapis.com/storage/v1/b/([^/]+)/o/(.*)'); - export class ObjectBuilder { /** @internal */ constructor(private resource) { } @@ -63,21 +60,8 @@ export class ObjectBuilder { * Handle any change to any object. */ onChange(handler: (event: Event) => PromiseLike | any): CloudFunction { - // This is a temporary shim to fix the 'mediaLink' for nested objects. - // BUG(37962789): clean this up when backend fix for bug is deployed. - let correctMediaLink = (event: Event) => { - let deconstructedNestedLink = event.data.mediaLink.match(nestedMediaLinkRE); - if (deconstructedNestedLink != null) { - // The media link for a nested object uses an illegal URL (using literal slashes instead of "%2F". - // Fix up the URL. - let bucketName = deconstructedNestedLink[1]; - let fixedTail = deconstructedNestedLink[2].replace(/\//g, '%2F'); // "/\//g" means "all forward slashes". - event.data.mediaLink = 'https://www.googleapis.com/storage/v1/b/' + bucketName + '/o/' + fixedTail; - } - return handler(event); - }; return makeCloudFunction( - { provider, handler: correctMediaLink, resource: this.resource, eventType: 'object.change' }); + { provider, handler: handler, resource: this.resource, eventType: 'object.change' }); } }