浏览代码

Unset old error when updating a VCard

JC Brand 4 月之前
父节点
当前提交
5713ca8f50
共有 2 个文件被更改,包括 6 次插入1 次删除
  1. 4 1
      src/headless/plugins/vcard/utils.js
  2. 2 0
      src/headless/shared/errors.js

+ 4 - 1
src/headless/plugins/vcard/utils.js

@@ -32,6 +32,8 @@ export async function onVCardData(iq) {
         stanza: iq, // TODO: remove?
         url: iq.querySelector(":scope > vCard URL")?.textContent,
         vcard_updated: new Date().toISOString(),
+        error: undefined,
+        vcard_error: undefined,
     };
     if (result.image) {
         const buffer = u.base64ToArrayBuffer(result["image"]);
@@ -179,10 +181,11 @@ export async function fetchVCard(jid) {
     try {
         iq = await api.sendIQ(createStanza("get", to));
     } catch (error) {
+        const { message: error_msg } = (isElement(error) ? await parseErrorStanza(error) : error) ?? {};
         return {
             jid,
             stanza: isElement(error) ? error : null, // TODO: remove?
-            error: isElement(error) ? await parseErrorStanza(error) : error?.message ?? '',
+            error: error_msg,
             vcard_error: new Date().toISOString(),
         };
     }

+ 2 - 0
src/headless/shared/errors.js

@@ -30,6 +30,8 @@ export class StanzaError extends Error {
         super(e.querySelector('text')?.textContent ?? '');
         /** @type {ErrorName} */
         this.name = name
+        /** @type {string} */
+        this.message = name;
         /** @type {ErrorType} */
         this.type = /** @type {ErrorType} */ (e.getAttribute('type'));
         /** @type {Element} */