Skip to content

Commit 6ca72d1

Browse files
authored
feat: client.publish payload (#2597)
1 parent a83f691 commit 6ca72d1

File tree

8 files changed

+21
-21
lines changed

8 files changed

+21
-21
lines changed

lib/adapters/REST/endpoints/ai-action.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ export const del: RestEndpoint<'AiAction', 'delete'> = (
7373

7474
export const publish: RestEndpoint<'AiAction', 'publish'> = (
7575
http: AxiosInstance,
76-
params: GetSpaceParams & { aiActionId: string },
77-
rawData: AiActionProps,
76+
params: GetSpaceParams & { aiActionId: string; version: number },
77+
rawData?: unknown,
7878
headers?: RawAxiosRequestHeaders
7979
) => {
8080
return raw.put<AiActionProps>(
@@ -83,7 +83,7 @@ export const publish: RestEndpoint<'AiAction', 'publish'> = (
8383
null,
8484
{
8585
headers: {
86-
'X-Contentful-Version': rawData.sys.version,
86+
'X-Contentful-Version': params.version,
8787
...headers,
8888
},
8989
}

lib/common-types.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -965,8 +965,7 @@ export type MRActions = {
965965
}
966966
delete: { params: GetSpaceParams & { aiActionId: string }; return: any }
967967
publish: {
968-
params: GetSpaceParams & { aiActionId: string }
969-
payload: AiActionProps
968+
params: GetSpaceParams & { aiActionId: string; version: number }
970969
headers?: RawAxiosRequestHeaders
971970
return: AiActionProps
972971
}

lib/create-space-api.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1608,14 +1608,12 @@ export default function createSpaceApi(makeRequest: MakeRequest) {
16081608
* .catch(console.error)
16091609
* ```
16101610
*/
1611-
publishAiAction(aiActionId: string, data: AiActionProps) {
1611+
publishAiAction(aiActionId: string, { version }: { version: number }) {
16121612
const raw = this.toPlainObject() as SpaceProps
16131613
return makeRequest({
16141614
entityType: 'AiAction',
16151615
action: 'publish',
1616-
params: { spaceId: raw.sys.id, aiActionId },
1617-
payload: data,
1618-
headers: { 'X-Contentful-Version': data.sys.version },
1616+
params: { spaceId: raw.sys.id, aiActionId, version },
16191617
}).then((response) => wrapAiAction(makeRequest, response))
16201618
},
16211619

lib/entities/ai-action.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,11 @@ function createAiActionApi(makeRequest: MakeRequest) {
150150
return makeRequest({
151151
entityType: 'AiAction',
152152
action: 'publish',
153-
params: getParams(self),
154-
payload: self,
153+
params: {
154+
aiActionId: self.sys.id,
155+
spaceId: self.sys.space.sys.id,
156+
version: self.sys.version,
157+
},
155158
}).then((data) => wrapAiAction(makeRequest, data))
156159
},
157160

lib/plain/entities/ai-action.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,13 @@ export type AiActionPlainClientAPI = {
6565
/**
6666
* Publishes the AI Action.
6767
* @param params Entity IDs to identify the AI Action.
68-
* @param payload The AI Action details.
6968
* @param headers Optional headers for the request.
7069
* @returns The published AI Action and its metadata.
7170
* @throws if the request fails or the payload is malformed.
7271
*/
7372
publish(
74-
params: OptionalDefaults<GetSpaceParams & { aiActionId: string }>,
75-
payload: AiActionProps,
73+
params: OptionalDefaults<GetSpaceParams & { aiActionId: string; version: number }>,
74+
payload?: unknown,
7675
headers?: Partial<RawAxiosRequestHeaders>
7776
): Promise<AiActionProps>
7877
/**

test/integration/ai-action-integration.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ describe('AiAction api', { sequential: true }, () => {
127127
})
128128
.then((aiAction) => {
129129
return space
130-
.publishAiAction(aiAction.sys.id, aiAction)
130+
.publishAiAction(aiAction.sys.id, { version: aiAction.sys.version })
131131
.then((publishedAction) => {
132132
expect(publishedAction.sys.publishedVersion).to.be.ok
133133
return space.unpublishAiAction(publishedAction.sys.id)
@@ -164,7 +164,7 @@ describe('AiAction api', { sequential: true }, () => {
164164
})
165165
.then((aiAction) => {
166166
return space
167-
.publishAiAction(aiAction.sys.id, aiAction)
167+
.publishAiAction(aiAction.sys.id, { version: aiAction.sys.version })
168168
.then((publishedAction) =>
169169
environment.invokeAiAction(publishedAction.sys.id, {
170170
outputFormat: 'PlainText',

test/integration/ai-action-invocation-integration.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ describe('AiActionInvocation api', { sequential: true }, () => {
6767
testCases: [],
6868
})
6969

70-
await space.publishAiAction(aiAction.sys.id, aiAction)
70+
await space.publishAiAction(aiAction.sys.id, { version: aiAction.sys.version })
7171

7272
// First invoke the action
7373
invocation = await environment.invokeAiAction(aiAction.sys.id, {
@@ -144,7 +144,7 @@ describe('AiActionInvocation api', { sequential: true }, () => {
144144
testCases: [],
145145
})
146146

147-
await space.publishAiAction(otherAiAction.sys.id, otherAiAction)
147+
await space.publishAiAction(otherAiAction.sys.id, { version: otherAiAction.sys.version })
148148

149149
try {
150150
await environment.getAiActionInvocation({

test/unit/create-space-api.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -550,10 +550,11 @@ describe('A createSpaceApi', () => {
550550
const { api, makeRequest, entitiesMock } = setup(Promise.resolve(aiAction))
551551
entitiesMock.aiAction.wrapAiAction.mockReturnValue(aiAction)
552552

553-
await api.publishAiAction('aiActionId', aiAction).then((r) => {
553+
await api.publishAiAction('aiActionId', { version: aiAction.sys.version }).then((r) => {
554554
expect(r).to.eql(aiAction)
555-
expect(makeRequest.mock.calls[0][0].payload).to.eql(aiAction)
555+
556556
expect(makeRequest.mock.calls[0][0].params.aiActionId).to.eql('aiActionId')
557+
expect(makeRequest.mock.calls[0][0].params.version).to.eql(aiAction.sys.version)
557558
expect(makeRequest.mock.calls[0][0].action).to.eql('publish')
558559
})
559560
})
@@ -564,7 +565,7 @@ describe('A createSpaceApi', () => {
564565
const aiAction = cloneMock('aiAction')
565566

566567
try {
567-
await api.publishAiAction('aiActionId', aiAction)
568+
await api.publishAiAction('aiActionId', { version: aiAction.sys.version })
568569
} catch (e) {
569570
expect(e).to.eq(error)
570571
}

0 commit comments

Comments
 (0)