(purchaseId, used)
| 1040 | } |
| 1041 | |
| 1042 | async function setLuckmailPurchaseUsedState(purchaseId, used) { |
| 1043 | const normalizedPurchaseId = normalizeLuckmailPurchaseId(purchaseId); |
| 1044 | if (!normalizedPurchaseId) { |
| 1045 | throw new Error('LuckMail 邮箱 ID 无效。'); |
| 1046 | } |
| 1047 | |
| 1048 | const state = await getState(); |
| 1049 | const usedPurchases = getLuckmailUsedPurchases(state); |
| 1050 | if (used) { |
| 1051 | usedPurchases[normalizedPurchaseId] = true; |
| 1052 | } else { |
| 1053 | delete usedPurchases[normalizedPurchaseId]; |
| 1054 | } |
| 1055 | |
| 1056 | await setLuckmailUsedPurchasesState(usedPurchases); |
| 1057 | return { |
| 1058 | purchaseId: Number(normalizedPurchaseId), |
| 1059 | used: Boolean(used), |
| 1060 | }; |
| 1061 | } |
| 1062 | |
| 1063 | async function setLuckmailPreserveTagInfo(tag) { |
| 1064 | const normalizedTags = normalizeLuckmailTags([tag]); |
no test coverage detected