+async function registerUser (req: express.Request) {
+ const body: UserCreate = req.body
+
+ const user = new UserModel({
+ username: body.username,
+ password: body.password,
+ email: body.email,
+ nsfwPolicy: CONFIG.INSTANCE.DEFAULT_NSFW_POLICY,
+ autoPlayVideo: true,
+ role: UserRole.USER,
+ videoQuota: CONFIG.USER.VIDEO_QUOTA
+ })
+
+ await createUserAccountAndChannel(user)
+
+ logger.info('User %s with its channel and account registered.', body.username)
+}
+
+async function getUserInformation (req: express.Request, res: express.Response, next: express.NextFunction) {
+ // We did not load channels in res.locals.user
+ const user = await UserModel.loadByUsernameAndPopulateChannels(res.locals.oauth.token.user.username)
+
+ return res.json(user.toFormattedJSON())
+}
+
+async function getUserVideoQuotaUsed (req: express.Request, res: express.Response, next: express.NextFunction) {
+ // We did not load channels in res.locals.user
+ const user = await UserModel.loadByUsernameAndPopulateChannels(res.locals.oauth.token.user.username)
+ const videoQuotaUsed = await UserModel.getOriginalVideoFileTotalFromUser(user)
+
+ return res.json({
+ videoQuotaUsed
+ })
+}
+
+function getUser (req: express.Request, res: express.Response, next: express.NextFunction) {
+ return res.json((res.locals.user as UserModel).toFormattedJSON())
+}
+
+async function getUserVideoRating (req: express.Request, res: express.Response, next: express.NextFunction) {