mirror of
https://codeberg.org/timelimit/timelimit-server.git
synced 2026-08-31 19:03:45 +02:00
Send ClientDataStatus after registering new device
This commit is contained in:
+9
-5
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* server component for the TimeLimit App
|
||||
* Copyright (C) 2019 Jonas Lochmann
|
||||
* Copyright (C) 2019 - 2022 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
|
||||
@@ -24,10 +24,12 @@ import { logoutAtPrimaryDevice } from '../function/child/logout-at-primary-devic
|
||||
import { setPrimaryDevice } from '../function/child/set-primary-device'
|
||||
import { WebsocketApi } from '../websocket'
|
||||
import { isRegisterChildDeviceRequest, isRequestWithAuthToken, isUpdatePrimaryDeviceRequest } from './validator'
|
||||
import { EventHandler } from '../monitoring/eventhandler'
|
||||
|
||||
export const createChildRouter = ({ database, websocket }: {
|
||||
database: Database,
|
||||
export const createChildRouter = ({ database, websocket, eventHandler }: {
|
||||
database: Database
|
||||
websocket: WebsocketApi
|
||||
eventHandler: EventHandler
|
||||
}) => {
|
||||
const router = Router()
|
||||
|
||||
@@ -37,15 +39,17 @@ export const createChildRouter = ({ database, websocket }: {
|
||||
throw new BadRequest()
|
||||
}
|
||||
|
||||
const { deviceAuthToken, deviceId } = await addChildDevice({
|
||||
const { deviceAuthToken, deviceId, data } = await addChildDevice({
|
||||
request: req.body,
|
||||
database,
|
||||
eventHandler,
|
||||
websocket
|
||||
})
|
||||
|
||||
res.json({
|
||||
deviceAuthToken,
|
||||
ownDeviceId: deviceId
|
||||
ownDeviceId: deviceId,
|
||||
data
|
||||
})
|
||||
} catch (ex) {
|
||||
next(ex)
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* server component for the TimeLimit App
|
||||
* Copyright (C) 2019 - 2020 Jonas Lochmann
|
||||
* Copyright (C) 2019 - 2022 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
|
||||
@@ -47,8 +47,8 @@ export const createApi = ({ database, websocket, connectedDevicesManager, eventH
|
||||
})
|
||||
|
||||
app.use('/auth', createAuthRouter(database))
|
||||
app.use('/child', createChildRouter({ database, websocket }))
|
||||
app.use('/parent', createParentRouter({ database, websocket }))
|
||||
app.use('/child', createChildRouter({ database, websocket, eventHandler }))
|
||||
app.use('/parent', createParentRouter({ database, websocket, eventHandler }))
|
||||
app.use('/purchase', createPurchaseRouter({ database, websocket }))
|
||||
app.use('/sync', createSyncRouter({ database, websocket, connectedDevicesManager, eventHandler }))
|
||||
|
||||
|
||||
+17
-4
@@ -31,6 +31,7 @@ import { signInIntoFamily } from '../function/parent/sign-in-into-family'
|
||||
import { validateU2fIntegrity, U2fValidationError } from '../function/u2f'
|
||||
import { createIdentityToken, MissingSignSecretException } from '../util/identity-token'
|
||||
import { WebsocketApi } from '../websocket'
|
||||
import { EventHandler } from '../monitoring/eventhandler'
|
||||
import {
|
||||
isCreateFamilyByMailTokenRequest,
|
||||
isCreateRegisterDeviceTokenRequest, isLinkParentMailAddressRequest,
|
||||
@@ -38,7 +39,13 @@ import {
|
||||
isRemoveDeviceRequest, isSignIntoFamilyRequest, isRequestIdentityTokenRequest
|
||||
} from './validator'
|
||||
|
||||
export const createParentRouter = ({ database, websocket }: {database: Database, websocket: WebsocketApi}) => {
|
||||
export const createParentRouter = ({
|
||||
database, websocket, eventHandler
|
||||
}: {
|
||||
database: Database
|
||||
websocket: WebsocketApi
|
||||
eventHandler: EventHandler
|
||||
}) => {
|
||||
const router = Router()
|
||||
|
||||
router.post('/get-status-by-mail-address', json(), async (req, res, next) => {
|
||||
@@ -75,17 +82,20 @@ export const createParentRouter = ({ database, websocket }: {database: Database,
|
||||
|
||||
const result = await createFamily({
|
||||
database,
|
||||
eventHandler,
|
||||
firstParentDevice: req.body.parentDevice,
|
||||
mailAuthToken: req.body.mailAuthToken,
|
||||
password: req.body.parentPassword,
|
||||
deviceName: req.body.deviceName,
|
||||
parentName: req.body.parentName,
|
||||
timeZone: req.body.timeZone
|
||||
timeZone: req.body.timeZone,
|
||||
clientLevel: req.body.clientLevel || null
|
||||
})
|
||||
|
||||
res.json({
|
||||
deviceAuthToken: result.deviceAuthToken,
|
||||
ownDeviceId: result.deviceId
|
||||
ownDeviceId: result.deviceId,
|
||||
data: result.data
|
||||
})
|
||||
} catch (ex) {
|
||||
next(ex)
|
||||
@@ -100,15 +110,18 @@ export const createParentRouter = ({ database, websocket }: {database: Database,
|
||||
|
||||
const result = await signInIntoFamily({
|
||||
database,
|
||||
eventHandler,
|
||||
newDeviceInfo: req.body.parentDevice,
|
||||
mailAuthToken: req.body.mailAuthToken,
|
||||
deviceName: req.body.deviceName,
|
||||
clientLevel: req.body.clientLevel || null,
|
||||
websocket
|
||||
})
|
||||
|
||||
res.json({
|
||||
deviceAuthToken: result.deviceAuthToken,
|
||||
ownDeviceId: result.deviceId
|
||||
ownDeviceId: result.deviceId,
|
||||
data: result.data
|
||||
})
|
||||
} catch (ex) {
|
||||
next(ex)
|
||||
|
||||
@@ -84,12 +84,14 @@ export interface CreateFamilyByMailTokenRequest {
|
||||
deviceName: string
|
||||
timeZone: string
|
||||
parentName: string
|
||||
clientLevel?: number
|
||||
}
|
||||
|
||||
export interface SignIntoFamilyRequest {
|
||||
mailAuthToken: string
|
||||
parentDevice: NewDeviceInfo
|
||||
deviceName: string
|
||||
clientLevel?: number
|
||||
}
|
||||
|
||||
export interface RecoverParentPasswordRequest {
|
||||
@@ -101,6 +103,7 @@ export interface RegisterChildDeviceRequest {
|
||||
registerToken: string
|
||||
childDevice: NewDeviceInfo
|
||||
deviceName: string
|
||||
clientLevel?: number
|
||||
}
|
||||
|
||||
export interface CreateRegisterDeviceTokenRequest {
|
||||
|
||||
@@ -2930,6 +2930,9 @@ export const isCreateFamilyByMailTokenRequest: (value: unknown) => value is Crea
|
||||
},
|
||||
"parentName": {
|
||||
"type": "string"
|
||||
},
|
||||
"clientLevel": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
@@ -2955,6 +2958,9 @@ export const isSignIntoFamilyRequest: (value: unknown) => value is SignIntoFamil
|
||||
},
|
||||
"deviceName": {
|
||||
"type": "string"
|
||||
},
|
||||
"clientLevel": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
@@ -2995,6 +3001,9 @@ export const isRegisterChildDeviceRequest: (value: unknown) => value is Register
|
||||
},
|
||||
"deviceName": {
|
||||
"type": "string"
|
||||
},
|
||||
"clientLevel": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false,
|
||||
|
||||
Reference in New Issue
Block a user