Skip to content

Commit fa747e5

Browse files
committed
fix(x): add error handling and logger to all X tools
1 parent 514a56d commit fa747e5

File tree

8 files changed

+56
-2
lines changed

8 files changed

+56
-2
lines changed

apps/sim/tools/x/create_bookmark.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XCreateBookmarkParams, XCreateBookmarkResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XCreateBookmarkTool')
6+
47
export const xCreateBookmarkTool: ToolConfig<XCreateBookmarkParams, XCreateBookmarkResponse> = {
58
id: 'x_create_bookmark',
69
name: 'X Create Bookmark',
@@ -47,10 +50,22 @@ export const xCreateBookmarkTool: ToolConfig<XCreateBookmarkParams, XCreateBookm
4750

4851
transformResponse: async (response) => {
4952
const data = await response.json()
53+
54+
if (!data.data) {
55+
logger.error('X Create Bookmark API Error:', JSON.stringify(data, null, 2))
56+
return {
57+
success: false,
58+
error: data.errors?.[0]?.detail || 'Failed to bookmark tweet',
59+
output: {
60+
bookmarked: false,
61+
},
62+
}
63+
}
64+
5065
return {
5166
success: true,
5267
output: {
53-
bookmarked: data.data?.bookmarked ?? false,
68+
bookmarked: data.data.bookmarked ?? false,
5469
},
5570
}
5671
},

apps/sim/tools/x/create_tweet.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XCreateTweetParams, XCreateTweetResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XCreateTweetTool')
6+
47
export const xCreateTweetTool: ToolConfig<XCreateTweetParams, XCreateTweetResponse> = {
58
id: 'x_create_tweet',
69
name: 'X Create Tweet',
@@ -93,6 +96,7 @@ export const xCreateTweetTool: ToolConfig<XCreateTweetParams, XCreateTweetRespon
9396
const data = await response.json()
9497

9598
if (!data.data) {
99+
logger.error('X Create Tweet API Error:', JSON.stringify(data, null, 2))
96100
return {
97101
success: false,
98102
error: data.errors?.[0]?.detail || 'Failed to create tweet',

apps/sim/tools/x/delete_bookmark.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XDeleteBookmarkParams, XDeleteBookmarkResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XDeleteBookmarkTool')
6+
47
export const xDeleteBookmarkTool: ToolConfig<XDeleteBookmarkParams, XDeleteBookmarkResponse> = {
58
id: 'x_delete_bookmark',
69
name: 'X Delete Bookmark',
@@ -45,10 +48,22 @@ export const xDeleteBookmarkTool: ToolConfig<XDeleteBookmarkParams, XDeleteBookm
4548

4649
transformResponse: async (response) => {
4750
const data = await response.json()
51+
52+
if (!data.data) {
53+
logger.error('X Delete Bookmark API Error:', JSON.stringify(data, null, 2))
54+
return {
55+
success: false,
56+
error: data.errors?.[0]?.detail || 'Failed to remove bookmark',
57+
output: {
58+
bookmarked: false,
59+
},
60+
}
61+
}
62+
4863
return {
4964
success: true,
5065
output: {
51-
bookmarked: data.data?.bookmarked ?? false,
66+
bookmarked: data.data.bookmarked ?? false,
5267
},
5368
}
5469
},

apps/sim/tools/x/delete_tweet.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XDeleteTweetParams, XDeleteTweetResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XDeleteTweetTool')
6+
47
export const xDeleteTweetTool: ToolConfig<XDeleteTweetParams, XDeleteTweetResponse> = {
58
id: 'x_delete_tweet',
69
name: 'X Delete Tweet',
@@ -40,6 +43,7 @@ export const xDeleteTweetTool: ToolConfig<XDeleteTweetParams, XDeleteTweetRespon
4043
const data = await response.json()
4144

4245
if (!data.data) {
46+
logger.error('X Delete Tweet API Error:', JSON.stringify(data, null, 2))
4347
return {
4448
success: false,
4549
error: data.errors?.[0]?.detail || 'Failed to delete tweet',

apps/sim/tools/x/manage_block.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XManageBlockParams, XManageBlockResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XManageBlockTool')
6+
47
export const xManageBlockTool: ToolConfig<XManageBlockParams, XManageBlockResponse> = {
58
id: 'x_manage_block',
69
name: 'X Manage Block',
@@ -63,6 +66,7 @@ export const xManageBlockTool: ToolConfig<XManageBlockParams, XManageBlockRespon
6366
const data = await response.json()
6467

6568
if (!data.data) {
69+
logger.error('X Manage Block API Error:', JSON.stringify(data, null, 2))
6670
return {
6771
success: false,
6872
output: {

apps/sim/tools/x/manage_follow.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XManageFollowParams, XManageFollowResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XManageFollowTool')
6+
47
export const xManageFollowTool: ToolConfig<XManageFollowParams, XManageFollowResponse> = {
58
id: 'x_manage_follow',
69
name: 'X Manage Follow',
@@ -63,6 +66,7 @@ export const xManageFollowTool: ToolConfig<XManageFollowParams, XManageFollowRes
6366
const data = await response.json()
6467

6568
if (!data.data) {
69+
logger.error('X Manage Follow API Error:', JSON.stringify(data, null, 2))
6670
return {
6771
success: false,
6872
output: {

apps/sim/tools/x/manage_like.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XManageLikeParams, XManageLikeResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XManageLikeTool')
6+
47
export const xManageLikeTool: ToolConfig<XManageLikeParams, XManageLikeResponse> = {
58
id: 'x_manage_like',
69
name: 'X Manage Like',
@@ -63,6 +66,7 @@ export const xManageLikeTool: ToolConfig<XManageLikeParams, XManageLikeResponse>
6366
const data = await response.json()
6467

6568
if (!data.data) {
69+
logger.error('X Manage Like API Error:', JSON.stringify(data, null, 2))
6670
return {
6771
success: false,
6872
output: {

apps/sim/tools/x/manage_retweet.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import { createLogger } from '@sim/logger'
12
import type { ToolConfig } from '@/tools/types'
23
import type { XManageRetweetParams, XManageRetweetResponse } from '@/tools/x/types'
34

5+
const logger = createLogger('XManageRetweetTool')
6+
47
export const xManageRetweetTool: ToolConfig<XManageRetweetParams, XManageRetweetResponse> = {
58
id: 'x_manage_retweet',
69
name: 'X Manage Retweet',
@@ -63,6 +66,7 @@ export const xManageRetweetTool: ToolConfig<XManageRetweetParams, XManageRetweet
6366
const data = await response.json()
6467

6568
if (!data.data) {
69+
logger.error('X Manage Retweet API Error:', JSON.stringify(data, null, 2))
6670
return {
6771
success: false,
6872
output: {

0 commit comments

Comments
 (0)