Issue while updating nested data createEntityAdapter RTK query

Viewed 68

I am working on the chat that is utilising RTK Query with entity adapters. We created nested normalised createEntityAdapter . I want to update the message key from onCacheEntryAdded, but not able to update nested object. I'm attaching the query endpoint code along with sample response.

RTK Query Endpoint

endpoints: builder => ({
    getMessages: builder.query({
      query: ({ orderId, userId, channel }) => {
        return {
          url: `/messages?orderId=${orderId}&userId=${userId}`,
          method: 'GET',
        }
      },
      transformResponse(response, meta, arg) {
        return messagesAdapter.setAll(messagesAdapter.getInitialState(), [
          {
            id: `${arg.orderId}-${arg.userId}`,
            isTyping: false,
            channel: arg.channel,
            orderId: arg.orderId,
            messages: messagesAdapter.addMany(
              messagesAdapter.getInitialState(),
              response,
            ),
          },
        ])
      },
      async onCacheEntryAdded(
        arg,
        { updateCachedData, cacheDataLoaded, cacheEntryRemoved, cacheData },
      ) {
        try {
          await cacheDataLoaded
          updateCachedData(draft => {
           
            messagesAdapter.updateOne(draft, {
              id: '62d529f60be7549be1f53df3-62d64eef37d10fea52e1ce72',
              changes: {
                messages: messagesAdapter.updateOne(
                  messagesAdapter.getInitialState(),
                  {
                    id: '62da7221bc0eb3a259fc2256',
                    changes: {
                      message: 'updated message',
                    },
                  },
                ),
              },
            })
          })
          
         
        } catch {
          // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,
          // in which case `cacheDataLoaded` will throw
        }
       
        await cacheEntryRemoved
        
      },

      providesTags: (result, error, arg) => {
        console.log('providesTags', result, error, arg)
        return ['chat']
      },
    }),
  }),

Sample response

{
    "ids": [
        "62d529f60be7549be1f53df3-62d64eef37d10fea52e1ce72"
    ],
    "entities": {
        "62d529f60be7549be1f53df3-62d64eef37d10fea52e1ce72": {
            "id": "62d529f60be7549be1f53df3-62d64eef37d10fea52e1ce72",
            "isTyping": false,
            "channel": "62d7d9266599a9f0c3bcdaba",
            "orderId": "62d529f60be7549be1f53df3",
            "messages": {
                "ids": [
                    "62da7221bc0eb3a259fc2256",
                    "62da724dbc0eb3a259fc2260",
                    "62da75559f7a23f89a0958d4",
                    "62da94e59f7a23f89a0958ed"
                ],
                "entities": {
                    "62da7221bc0eb3a259fc2256": {
                        "order": "62d529f60be7549be1f53df3",
                        "alias": "Jacques82",
                        "sender": "62d7999d976791c65dd6eacd",
                        "senderRole": "ops",
                        "receiver": "62d64eef37d10fea52e1ce72",
                        "receiverRole": "student",
                        "receiverAlias": "Daniela_Jacobs0",
                        "message": "dsds",
                        "sentAt": "2022-07-22T09:47:13.000Z",
                        "id": "62da7221bc0eb3a259fc2256"
                    },
                    "62da724dbc0eb3a259fc2260": {
                        "order": "62d529f60be7549be1f53df3",
                        "alias": "Jacques82",
                        "sender": "62d7999d976791c65dd6eacd",
                        "senderRole": "ops",
                        "receiver": "62d64eef37d10fea52e1ce72",
                        "receiverRole": "student",
                        "receiverAlias": "Daniela_Jacobs0",
                        "message": "hello nm",
                        "sentAt": "2022-07-22T09:47:57.000Z",
                        "id": "62da724dbc0eb3a259fc2260"
                    },
                    "62da75559f7a23f89a0958d4": {
                        "order": "62d529f60be7549be1f53df3",
                        "alias": "Jacques82",
                        "sender": "62d7999d976791c65dd6eacd",
                        "senderRole": "ops",
                        "receiver": "62d64eef37d10fea52e1ce72",
                        "receiverRole": "student",
                        "receiverAlias": "Daniela_Jacobs0",
                        "message": "b",
                        "sentAt": "2022-07-22T10:00:53.000Z",
                        "id": "62da75559f7a23f89a0958d4"
                    },
                    "62da94e59f7a23f89a0958ed": {
                        "order": "62d529f60be7549be1f53df3",
                        "alias": "Jacques82",
                        "sender": "62d7999d976791c65dd6eacd",
                        "senderRole": "ops",
                        "receiver": "62d64eef37d10fea52e1ce72",
                        "receiverRole": "student",
                        "receiverAlias": "Daniela_Jacobs0",
                        "message": "hello there",
                        "sentAt": "2022-07-22T12:15:31.000Z",
                        "id": "62da94e59f7a23f89a0958ed"
                    }
                }
            }
        }
    }
}

0 Answers
Related