Skip to content

Commit

Permalink
fix: XML parse boolean
Browse files Browse the repository at this point in the history
  • Loading branch information
rrr523 committed Aug 29, 2023
1 parent 8b6b2c6 commit d747e60
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 19 deletions.
5 changes: 5 additions & 0 deletions .changeset/gorgeous-ligers-give.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@bnb-chain/greenfield-js-sdk': patch
---

fix: XML boolean parse
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { formatObjectInfo } from '@/types';
import { convertStrToBool, formatObjectInfo } from '@/types/sp-xml/Common';
import { GetObjectMetaResponse } from '@/types/sp-xml/GetObjectMetaResponse';
import xml from 'xml2js';

Expand All @@ -12,7 +12,8 @@ export const parseGetObjectMetaResponse = async (data: string) => {

const Object = res.GfSpGetObjectMetaResponse.Object || {};
if (Object) {
Object.Removed = Boolean(Object.Removed);
// @ts-ignore
Object.Removed = convertStrToBool(Object.Removed);
Object.UpdateAt = Number(Object.UpdateAt);
Object.DeleteAt = Number(Object.DeleteAt);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { GetUserBucketsResponse } from '@/types';
import { convertStrToBool } from '@/types/sp-xml/Common';
import xml from 'xml2js';

// https://docs.bnbchain.org/greenfield-docs/docs/api/storgae-provider-rest/get_user_buckets
Expand All @@ -18,7 +19,8 @@ export const parseGetUserBucketsResponse = async (data: string) => {
Buckets = Buckets.map((item) => {
return {
...item,
Removed: Boolean(item.Removed),
// @ts-ignore
Removed: convertStrToBool(item.Removed),
DeleteAt: Number(item.DeleteAt),
UpdateAt: Number(item.UpdateAt),
UpdateTime: Number(item.UpdateTime),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import {
formatObjectInfo,
ListObjectsByBucketNameResponse,
} from '@/types/sp-xml/ListObjectsByBucketNameResponse';
import { convertStrToBool, formatObjectInfo } from '@/types/sp-xml/Common';
import { ListObjectsByBucketNameResponse } from '@/types/sp-xml/ListObjectsByBucketNameResponse';
import xml from 'xml2js';

// https://docs.bnbchain.org/greenfield-docs/docs/api/storgae-provider-rest/list_objects_by_bucket
Expand All @@ -21,7 +19,8 @@ export const parseListObjectsByBucketNameResponse = async (data: string) => {
Objects = Objects.map((item) => {
return {
...item,
Removed: Boolean(item.Removed),
// @ts-ignore
Removed: convertStrToBool(item.Removed),
UpdateAt: Number(item.UpdateAt),
DeleteAt: Number(item.DeleteAt),
ObjectInfo: formatObjectInfo(item.ObjectInfo),
Expand All @@ -35,7 +34,8 @@ export const parseListObjectsByBucketNameResponse = async (data: string) => {
...res.GfSpListObjectsByBucketNameResponse,
Objects,
CommonPrefixes,
IsTruncated: Boolean(res.GfSpListObjectsByBucketNameResponse.IsTruncated),
// @ts-ignore
IsTruncated: convertStrToBool(res.GfSpListObjectsByBucketNameResponse.IsTruncated),
};

return res;
Expand Down
14 changes: 14 additions & 0 deletions packages/chain-sdk/src/types/sp-xml/Common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,3 +74,17 @@ export interface ObjectInfo {
SourceType: keyof typeof SourceType;
Checksums: string[];
}

export function formatObjectInfo(o: ObjectInfo) {
return {
...o,
Id: Number(o.Id),
LocalVirtualGroupId: Number(o.LocalVirtualGroupId),
PayloadSize: Number(o.PayloadSize),
CreateAt: Number(o.CreateAt),
};
}

export function convertStrToBool(str: string) {
return String(str).toLowerCase() === 'true';
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,3 @@ export interface GfSPListObjectsByBucketNameResponse {
CommonPrefixes: string[];
ContinuationToken: string;
}

export function formatObjectInfo(o: ObjectInfo) {
return {
...o,
Id: Number(o.Id),
LocalVirtualGroupId: Number(o.LocalVirtualGroupId),
PayloadSize: Number(o.PayloadSize),
CreateAt: Number(o.CreateAt),
};
}

0 comments on commit d747e60

Please sign in to comment.