fix(core): handling of refer code storage add (#2642)
Docker Image CI / build-and-push-image (push) Has been cancelled
Maintain Release Merge PR / update-release-pr (push) Has been cancelled
release-please / release-please (push) Has been cancelled
test / test-backend (24.x) (push) Has been cancelled
test / API tests (node env, api-test) (24.x) (push) Has been cancelled
test / puterjs (node env, vitest) (24.x) (push) Has been cancelled

This commit is contained in:
Eric Dubé
2026-03-10 22:39:02 -04:00
committed by GitHub
parent 05b047c8b9
commit ebb9015045
+13 -3
View File
@@ -115,7 +115,15 @@ class SizeService extends BaseService {
await this.change_usage(user.id, sz * factor);
}
async get_storage_capacity (user_or_id) {
/**
*
* @param {*} user_or_id
* @param {*} param1.exclude_transient - set to `true` to exclude
* paid storage, and other temporary storage grants which are
* not persisted in the `user.free_storage` column.
* @returns
*/
async get_storage_capacity (user_or_id, { exclude_transient } = {}) {
const user = await UserParameter.adapt(user_or_id);
if ( ! this.global_config.is_storage_limited ) {
return this.global_config.available_device_storage;
@@ -125,7 +133,9 @@ class SizeService extends BaseService {
return this.global_config.storage_capacity;
}
return user.free_storage;
return exclude_transient
? user.actual_free_storage ?? user.free_storage
: user.free_storage;
}
/**
@@ -141,7 +151,7 @@ class SizeService extends BaseService {
*/
async add_storage (user_or_id, amount_in_bytes, reason, { field_a, field_b } = {}) {
const user = await UserParameter.adapt(user_or_id);
const capacity = await this.get_storage_capacity(user);
const capacity = await this.get_storage_capacity(user, { exclude_transient: true });
// Audit log
{