diff --git a/services/GitlabService.js b/services/GitlabService.js index 1fce8ed..57e6307 100644 --- a/services/GitlabService.js +++ b/services/GitlabService.js @@ -96,7 +96,7 @@ class GitlabService { await svc.refreshAccessToken(); svc.#gitlab = new Gitlab({ host: config.GITLAB_API_BASE_URL, - oauthToken: user.accessToken + oauthToken: svc.#user.accessToken }); return svc; } catch (err) { @@ -123,10 +123,10 @@ class GitlabService { if (!lockedUser) { throw new Error(`Failed to acquire lock on user ${this.#user.id} after ${tries} attempts.`); } - logger.debug(`[Lock ID: ${lockId}] Acquired lock on user ${this.#user.id}.`); + logger.debug(`[Lock ID: ${lockId}] Acquired lock on user ${this.#user.username}.`); if (lockedUser.accessTokenExpiration && new Date().getTime() > lockedUser.accessTokenExpiration.getTime() - (config.GITLAB_REFRESH_TOKEN_BEFORE_EXPIRATION * MS_PER_SECOND)) { - logger.debug(`[Lock ID: ${lockId}] Refreshing access token for user ${this.#user.id}.`); + logger.debug(`[Lock ID: ${lockId}] Refreshing access token for user ${this.#user.username}.`); const query = { client_id: config.GITLAB_CLIENT_ID, client_secret: config.GITLAB_CLIENT_SECRET, @@ -147,11 +147,10 @@ class GitlabService { _.assign(lockedUser, updates); await dbHelper.update(models.User, lockedUser.id, updates); } - return lockedUser; } finally { if (lockedUser) { - logger.debug(`[Lock ID: ${lockId}] Releasing lock on user ${this.#user.id}.`); - await dbHelper.releaseLockOnUser(this.#user.id, lockId); + logger.debug(`[Lock ID: ${lockId}] Releasing lock on user ${this.#user.username}.`); + this.#user = await dbHelper.releaseLockOnUser(this.#user.id, lockId); } } } diff --git a/utils/db-helper.js b/utils/db-helper.js index 18e7f35..873fca6 100644 --- a/utils/db-helper.js +++ b/utils/db-helper.js @@ -479,7 +479,7 @@ async function acquireLockOnUser(userId, lockId, ttl) { * @returns {Promise<Object>} The lock object */ async function releaseLockOnUser(id, lockId) { - const res = await models.User.update( + const user = await models.User.update( {id}, {lockId: null, lockExpiration: null}, { @@ -487,7 +487,7 @@ async function releaseLockOnUser(id, lockId) { conditionValues: {lockId} }, ); - return res; + return user; } module.exports = {