fix: Handle 404 error when accepting friend request notification (#1024) (#1025)

This commit is contained in:
pa
2024-12-16 16:28:49 +09:00
committed by GitHub
parent 109753b3fd
commit 8f684228be
2 changed files with 20 additions and 13 deletions

View File

@@ -2392,20 +2392,27 @@ speechSynthesis.getVoices();
* @param {{ notificationId: string }} params * @param {{ notificationId: string }} params
* @return { Promise<{json: any, params}> } * @return { Promise<{json: any, params}> }
*/ */
API.acceptNotification = function (params) { API.acceptFriendRequestNotification = function (params) {
return this.call( return this.call(
`auth/user/notifications/${params.notificationId}/accept`, `auth/user/notifications/${params.notificationId}/accept`,
{ {
method: 'PUT' method: 'PUT'
} }
).then((json) => { )
var args = { .then((json) => {
json, var args = {
params json,
}; params
this.$emit('NOTIFICATION:ACCEPT', args); };
return args; this.$emit('NOTIFICATION:ACCEPT', args);
}); return args;
})
.catch((err) => {
// if friend request could not be found, delete it
if (err && err.message && err.message.includes('404')) {
this.$emit('NOTIFICATION:HIDE', { params });
}
});
}; };
/** /**
@@ -7526,7 +7533,7 @@ speechSynthesis.getVoices();
} }
}); });
$app.methods.acceptNotification = function (row) { $app.methods.acceptFriendRequestNotification = function (row) {
// FIXME: 메시지 수정 // FIXME: 메시지 수정
this.$confirm('Continue? Accept Friend Request', 'Confirm', { this.$confirm('Continue? Accept Friend Request', 'Confirm', {
confirmButtonText: 'Confirm', confirmButtonText: 'Confirm',
@@ -7534,7 +7541,7 @@ speechSynthesis.getVoices();
type: 'info', type: 'info',
callback: (action) => { callback: (action) => {
if (action === 'confirm') { if (action === 'confirm') {
API.acceptNotification({ API.acceptFriendRequestNotification({
notificationId: row.id notificationId: row.id
}); });
} }
@@ -10601,7 +10608,7 @@ speechSynthesis.getVoices();
userId userId
}); });
} else { } else {
API.acceptNotification({ API.acceptFriendRequestNotification({
notificationId: key notificationId: key
}); });
} }

View File

@@ -61,7 +61,7 @@ mixin notificationsTab()
template(v-if="scope.row.senderUserId !== API.currentUser.id && !scope.row.$isExpired") template(v-if="scope.row.senderUserId !== API.currentUser.id && !scope.row.$isExpired")
template(v-if="scope.row.type === 'friendRequest'") template(v-if="scope.row.type === 'friendRequest'")
el-tooltip(placement="top" content="Accept" :disabled="hideTooltips") el-tooltip(placement="top" content="Accept" :disabled="hideTooltips")
el-button(type="text" icon="el-icon-check" size="mini" @click="acceptNotification(scope.row)") el-button(type="text" icon="el-icon-check" size="mini" @click="acceptFriendRequestNotification(scope.row)")
template(v-else-if="scope.row.type === 'invite'") template(v-else-if="scope.row.type === 'invite'")
el-tooltip(placement="top" content="Decline with message" :disabled="hideTooltips") el-tooltip(placement="top" content="Decline with message" :disabled="hideTooltips")
el-button(type="text" icon="el-icon-chat-line-square" size="mini" @click="showSendInviteResponseDialog(scope.row)") el-button(type="text" icon="el-icon-chat-line-square" size="mini" @click="showSendInviteResponseDialog(scope.row)")