mirror of
https://codeberg.org/timelimit/timelimit-server.git
synced 2026-08-31 19:03:45 +02:00
Add account deletion API
This commit is contained in:
+18
-2
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* server component for the TimeLimit App
|
||||
* Copyright (C) 2019 - 2022 Jonas Lochmann
|
||||
* Copyright (C) 2019 - 2023 Jonas Lochmann
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as
|
||||
@@ -21,6 +21,7 @@ import { Router } from 'express'
|
||||
import { BadRequest, Forbidden, Unauthorized } from 'http-errors'
|
||||
import { config } from '../config'
|
||||
import { Database, Transaction } from '../database'
|
||||
import { deleteAccount } from '../function/cleanup/account-deletion'
|
||||
import { removeDevice } from '../function/device/remove-device'
|
||||
import { createAddDeviceToken } from '../function/parent/create-add-device-token'
|
||||
import { createFamily } from '../function/parent/create-family'
|
||||
@@ -36,7 +37,8 @@ import {
|
||||
isCreateFamilyByMailTokenRequest,
|
||||
isCreateRegisterDeviceTokenRequest, isLinkParentMailAddressRequest,
|
||||
isMailAuthTokenRequestBody, isRecoverParentPasswordRequest,
|
||||
isRemoveDeviceRequest, isSignIntoFamilyRequest, isRequestIdentityTokenRequest
|
||||
isRemoveDeviceRequest, isSignIntoFamilyRequest, isRequestIdentityTokenRequest,
|
||||
isDeleteAccountPayload
|
||||
} from './validator'
|
||||
|
||||
export const createParentRouter = ({
|
||||
@@ -356,5 +358,19 @@ export const createParentRouter = ({
|
||||
}
|
||||
})
|
||||
|
||||
router.post('/delete-account', json(), async (req, res, next) => {
|
||||
try {
|
||||
if (!isDeleteAccountPayload(req.body)) {
|
||||
throw new BadRequest()
|
||||
}
|
||||
|
||||
await deleteAccount({ database, request: req.body, websocket })
|
||||
|
||||
res.sendStatus(200)
|
||||
} catch (ex) {
|
||||
next(ex)
|
||||
}
|
||||
})
|
||||
|
||||
return router
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user