Skip to content

Commit

Permalink
Merge pull request #90 from ButterCMS/update-response-structure
Browse files Browse the repository at this point in the history
update response structure to echo schema expected from TS defs and v1
  • Loading branch information
ViolanteCodes committed Jul 29, 2024
2 parents 0b8325c + 1a748fa commit 4dc8698
Show file tree
Hide file tree
Showing 10 changed files with 48 additions and 26 deletions.
30 changes: 17 additions & 13 deletions __tests__/butter.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@ test(
}
)

const response = await singlePageResponse;

const response = singlePageResponse.data;
await expect(response.data.fields.headline).toEqual("This is an example news page");
await expect(response.data.slug).toEqual("example-news-page")
await expect(response.data.page_type).not.toEqual("sport")

// ensure we can get the page with the real page type attached
const response2 = await butter.page.retrieve('news', 'example-news-page')
const singlePageResponse2 = await butter.page.retrieve('news', 'example-news-page')

const response2 = singlePageResponse2.data;

await expect(response2.data.fields.headline).toEqual("This is an example news page");
await expect(response2.data.slug).toEqual("example-news-page")
Expand Down Expand Up @@ -76,11 +78,11 @@ test(
"should list pages by single-pages",
async () => {
const response = await butter.page.list('*')
await expect(response.meta.count).toEqual(2);
await expect(response.data).toHaveLength(2);

await expect(response.data.meta.count).toEqual(2);
await expect(response.data.data).toHaveLength(2);

const firstPage = response.data[0];
const firstPage = response.data.data[0];

await expect(firstPage).toHaveProperty('slug', 'single-page-1');
await expect(firstPage).toHaveProperty('fields.title', 'This is a single page');
Expand All @@ -96,10 +98,10 @@ test(
async () => {
const response = await butter.page.list('*')

await expect(response.meta.count).toEqual(2);
await expect(response.data).toHaveLength(2);
await expect(response.data.meta.count).toEqual(2);
await expect(response.data.data).toHaveLength(2);

const firstPage = response.data[0];
const firstPage = response.data.data[0];

await expect(firstPage).toHaveProperty('slug', 'single-page-1');
await expect(firstPage).toHaveProperty('fields.title', 'This is a single page');
Expand All @@ -108,9 +110,11 @@ test(

const response2 = await butter.page.retrieve('news', 'example-news-page')

await expect(response2.data.fields.headline).toEqual("This is an example news page");
await expect(response2.data.slug).toEqual("example-news-page")
await expect(response2.data.page_type).not.toEqual("sport")
const exactPage = response2.data

await expect(exactPage.data.fields.headline).toEqual("This is an example news page");
await expect(exactPage.data.slug).toEqual("example-news-page")
await expect(exactPage.data.page_type).not.toEqual("sport")

return
}
Expand Down
2 changes: 1 addition & 1 deletion examples/basic.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
const {
meta,
data: posts
} = resp
} = resp.data

for(i = 0; i < posts.length; i++) {
var title = posts[i].title;
Expand Down
4 changes: 2 additions & 2 deletions examples/hooks.html
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
</div>

<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="./lib/butter.min.js"></script>
<script src="https://cdnjs.buttercms.com/buttercms-2.0.3.min.js"></script><!-- {x-release-please-version} -->
<script>
$(function() {

Expand Down Expand Up @@ -40,7 +40,7 @@
const {
meta,
data: posts
} = resp
} = resp.data

if (!posts) return

Expand Down
7 changes: 4 additions & 3 deletions lib/useButter.js
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ export default function useButter(type, butterConfig) {
cache: config.cache,
method: "GET",
headers,
// use either the above timeout o
// r the explicity AbortController cancelRequest to cancel request
// use either the above timeout or
// the explicit AbortController cancelRequest to cancel request
signal: AbortSignal.any([signal, timeoutSignal])
}
);
Expand All @@ -101,7 +101,8 @@ export default function useButter(type, butterConfig) {
{
config,
params,
type
type,
requestHeaders: butterHeaders
}
);
}
Expand Down
19 changes: 18 additions & 1 deletion lib/utils/useOnResponse.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,5 +42,22 @@ export default async function useOnResponse (response, kwargs) {

// Parse and return the response as JSON.
// The expected structure is { data, [meta, errors] }.
return await response.json()
const data = await response.json()

return {
data: data,
headers: Object.fromEntries(response.headers.entries()),
status: response.status,
statusText: response.statusText,
config: {
url: response.url,
method: "get",
headers: Object.fromEntries(kwargs.requestHeaders.entries()),
transformRequest: onRequest
? [ onRequest ] : [],
transformResponse: onResponse
? [ onResponse ] : [],
timeout: kwargs.config.timeout
}
}
}
2 changes: 1 addition & 1 deletion mocks/responses/page/page.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@
]
}
}
}
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "buttercms",
"version": "2.0.3",
"version": "2.1.0",
"description": "ButterCMS API Client",
"keywords": [
"buttercms",
Expand Down
4 changes: 2 additions & 2 deletions tests/basic.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
const {
data: collections,
meta
} = resp
} = resp.data

if (collections) {
const collection = collections["my-collection"]
Expand Down Expand Up @@ -58,7 +58,7 @@
const {
meta,
data: posts
} = resp
} = resp.data

if (posts) {
for(i = 0; i < posts.length; i++) {
Expand Down
2 changes: 1 addition & 1 deletion tests/hooks.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
const {
meta,
data: posts
} = resp
} = resp.data

if (!posts) return

Expand Down
2 changes: 1 addition & 1 deletion tests/lib/butter.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 4dc8698

Please sign in to comment.