diff --git a/lib/shared/farcaster/farcaster-api.js b/lib/shared/farcaster/farcaster-api.js --- a/lib/shared/farcaster/farcaster-api.js +++ b/lib/shared/farcaster/farcaster-api.js @@ -928,6 +928,7 @@ export type PinMessageInput = { +conversationId: string, +messageId: string, + +action: 'pin' | 'unpin', }; function usePinMessage(): (input: PinMessageInput) => Promise { @@ -935,19 +936,23 @@ const { addLog } = useDebugLogs(); return React.useCallback( async (input: PinMessageInput) => { + const { conversationId, messageId, action } = input; + const method = action === 'pin' ? { type: 'POST' } : { type: 'DELETE' }; + try { await sendFarcasterRequest({ apiVersion: 'v2', endpoint: 'direct-cast-pin-message', - method: { type: 'POST' }, - payload: JSON.stringify(input), + method, + payload: JSON.stringify({ conversationId, messageId }), }); } catch (error) { addLog( - 'Farcaster API: Failed to pin a message', + `Farcaster API: Failed to ${action} a message`, JSON.stringify({ - conversationId: input.conversationId, - messageId: input.messageId, + conversationId, + messageId, + action, error: getMessageForException(error), }), new Set([logTypes.FARCASTER, logTypes.ERROR]), diff --git a/lib/shared/threads/protocols/farcaster-thread-protocol.js b/lib/shared/threads/protocols/farcaster-thread-protocol.js --- a/lib/shared/threads/protocols/farcaster-thread-protocol.js +++ b/lib/shared/threads/protocols/farcaster-thread-protocol.js @@ -954,7 +954,7 @@ input: ProtocolPinMessageInput, utils: PinMessageUtils, ): Promise => { - const { messageID, threadInfo } = input; + const { messageID, threadInfo, action } = input; const { farcasterPinMessage } = utils; const conversationId = conversationIDFromFarcasterThreadID(threadInfo.id); @@ -962,6 +962,7 @@ await farcasterPinMessage({ conversationId, messageId: messageID, + action, }); },