Skip to content

Commit 10a7e87

Browse files
committed
addressing comments
1 parent 4d22b2a commit 10a7e87

File tree

3 files changed

+20
-46
lines changed

3 files changed

+20
-46
lines changed

src/bucket.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -843,7 +843,7 @@ class Bucket extends ServiceObject<Bucket, BucketMetadata> {
843843
* that the API failed to retrieve (unreachable) due to partial failure.
844844
* Consumers must check this flag before accessing other properties.
845845
*/
846-
unreachable?: boolean;
846+
unreachable = false;
847847

848848
constructor(storage: Storage, name: string, options?: BucketOptions) {
849849
options = options || {};

src/storage.ts

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1326,7 +1326,6 @@ export class Storage extends Service {
13261326
cb
13271327
);
13281328
options.project = options.project || this.projectId;
1329-
const returnPartialSuccess = options.returnPartialSuccess || false;
13301329

13311330
this.request(
13321331
{
@@ -1345,25 +1344,28 @@ export class Storage extends Service {
13451344
const buckets = itemsArray.map((bucket: BucketMetadata) => {
13461345
const bucketInstance = this.bucket(bucket.id!);
13471346
bucketInstance.metadata = bucket;
1348-
bucketInstance.unreachable = false;
1347+
13491348
return bucketInstance;
13501349
});
13511350

1352-
let unreachableBuckets: Bucket[] = [];
1353-
if (returnPartialSuccess && unreachableArray.length > 0) {
1354-
unreachableBuckets = unreachableArray
1355-
.map((fullPath: string) => {
1351+
let results: Bucket[] = buckets;
1352+
if (unreachableArray.length > 0) {
1353+
results = unreachableArray.reduce(
1354+
(acc: Bucket[], fullPath: string) => {
13561355
const name = fullPath.split('/').pop();
1357-
if (!name) return null;
1358-
const placeholder = this.bucket(name);
1359-
placeholder.unreachable = true;
1360-
placeholder.metadata = {};
1361-
return placeholder;
1362-
})
1363-
.filter(Boolean) as Bucket[];
1364-
}
1365-
const results = [...buckets, ...unreachableBuckets];
13661356

1357+
if (name) {
1358+
const placeholder = this.bucket(name);
1359+
placeholder.unreachable = true;
1360+
placeholder.metadata = {};
1361+
acc.push(placeholder);
1362+
}
1363+
1364+
return acc;
1365+
},
1366+
buckets
1367+
);
1368+
}
13671369
const nextQuery = resp.nextPageToken
13681370
? Object.assign({}, options, {pageToken: resp.nextPageToken})
13691371
: null;

test/index.ts

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1201,45 +1201,17 @@ describe('Storage', () => {
12011201
b => b.name === 'fake-bucket-name'
12021202
);
12031203
assert.ok(reachableBucket);
1204-
assert.strictEqual(reachableBucket!.unreachable, false);
1204+
assert.strictEqual(reachableBucket.unreachable, false);
12051205

12061206
const unreachableBucket = buckets.find(b => b.name === 'fail-bucket');
12071207
assert.ok(unreachableBucket);
1208-
assert.strictEqual(unreachableBucket!.unreachable, true);
1208+
assert.strictEqual(unreachableBucket.unreachable, true);
12091209
assert.deepStrictEqual(apiResponse, resp);
12101210
done();
12111211
}
12121212
);
12131213
});
12141214

1215-
it('should not return unreachable when returnPartialSuccess is false and unreachable items exist', done => {
1216-
const unreachableList = ['projects/_/buckets/fail-bucket'];
1217-
const itemsList = [{id: 'fake-bucket-name'}];
1218-
const resp = {items: itemsList, unreachable: unreachableList};
1219-
1220-
storage.request = (
1221-
reqOpts: DecorateRequestOptions,
1222-
callback: Function
1223-
) => {
1224-
assert.strictEqual(reqOpts.qs.returnPartialSuccess, false);
1225-
callback(null, resp);
1226-
};
1227-
1228-
storage.getBuckets(
1229-
{returnPartialSuccess: false},
1230-
(err: Error, buckets: Bucket[], nextQuery: {}, apiResponse: {}) => {
1231-
assert.ifError(err);
1232-
assert.strictEqual(buckets.length, itemsList.length);
1233-
assert.deepStrictEqual(
1234-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
1235-
(apiResponse as any).unreachable,
1236-
unreachableList
1237-
);
1238-
done();
1239-
}
1240-
);
1241-
});
1242-
12431215
it('should handle partial failure with zero reachable buckets', done => {
12441216
const unreachableList = ['projects/_/buckets/fail-bucket'];
12451217
const resp = {items: [], unreachable: unreachableList};

0 commit comments

Comments
 (0)