From d9ed1611046fcc4c5dd8304083bae1f12b2d431a Mon Sep 17 00:00:00 2001 From: "MSITE.TOP" Date: Sat, 16 Nov 2024 19:17:17 +0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=99=20feat:=20automatically=20add=20st?= =?UTF-8?q?art=20balance=20(#4486)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * automatically add start balance https://github.com/danny-avila/LibreChat/issues/2687 * chore: imports order in userMethods.js * Information about START_BALANCE has been added --------- Co-authored-by: Danny Avila --- .env.example | 1 + api/models/userMethods.js | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/.env.example b/.env.example index b0a0f20b9f..ac387b8c68 100644 --- a/.env.example +++ b/.env.example @@ -352,6 +352,7 @@ ILLEGAL_MODEL_REQ_SCORE=5 #========================# CHECK_BALANCE=false +# START_BALANCE=20000 # note: the number of tokens that will be credited after registration. #========================# # Registration and Login # diff --git a/api/models/userMethods.js b/api/models/userMethods.js index 913ce762e9..63b25edd3a 100644 --- a/api/models/userMethods.js +++ b/api/models/userMethods.js @@ -1,5 +1,7 @@ const bcrypt = require('bcryptjs'); const signPayload = require('~/server/services/signPayload'); +const { isEnabled } = require('~/server/utils/handleText'); +const Balance = require('./Balance'); const User = require('./User'); /** @@ -71,6 +73,16 @@ const createUser = async (data, disableTTL = true, returnUser = false) => { } const user = await User.create(userData); + + if (isEnabled(process.env.CHECK_BALANCE) && process.env.START_BALANCE) { + let incrementValue = parseInt(process.env.START_BALANCE); + await Balance.findOneAndUpdate( + { user: user._id }, + { $inc: { tokenCredits: incrementValue } }, + { upsert: true, new: true }, + ).lean(); + } + if (returnUser) { return user.toObject(); }