MCPcopy Create free account
hub / github.com/RealDevSquad/website-backend / updateUserStatus

Function updateUserStatus

models/userStatus.js:210–283  ·  view source on GitHub ↗
(userId, updatedStatusData)

Source from the content-addressed store, hash-verified

208 delete newStatusData.currentStatus;
209 } else {
210 newStatusData.futureStatus = {};
211 }
212 }
213 }
214 const lastOooUntilUpdate = resolveLastOooUntil({
215 previousState,
216 previousUntil,
217 nextState: requestedNextState,
218 fallbackTimestamp: newStatusData.currentStatus?.updatedAt,
219 });
220 if (lastOooUntilUpdate !== undefined) {
221 newStatusData.lastOooUntil = lastOooUntilUpdate;
222 }
223 if (
224 userStatusData.currentStatus?.state === userState.IDLE &&
225 newStatusData.currentStatus?.state !== userState.IDLE
226 ) {
227 await removeGroupIdleRoleFromDiscordUser(userId);
228 }
229 await userStatusModel.doc(docId).update(newStatusData);
230 return { id: docId, userStatusExists: true, data: newStatusData };
231 } else {
232 // the user doc doesnt exist meaning we need to create one
233 if (Object.keys(newStatusData).includes("currentStatus")) {
234 filterStatusData(newStatusData);
235 const isNewStateOOO = newStatusData.currentStatus.state === userState.OOO;
236 if (isNewStateOOO) {
237 if (newStatusData.currentStatus.from >= tomorrow) {
238 newStatusData.futureStatus = { ...newStatusData.currentStatus };
239 delete newStatusData.currentStatus;
240 }
241 }
242 }
243 const initialData = { userId, lastOooUntil: null, ...newStatusData };
244 const { id } = await userStatusModel.add(initialData);
245 return { id, userStatusExists: false, data: newStatusData };
246 }
247 } catch (error) {
248 logger.error(`error in updating User Status Document ${error}`);
249 throw error;
250 }
251};
252
253/**
254 * @param userId { String }: Id of the User
255 * @param newStatusData { Object }: Data to be Updated
256 * @returns Promise<userStatusModel|Object>
257 */
258
259const updateAllUserStatus = async () => {
260 const summary = {
261 usersCount: 0,
262 oooUsersAltered: 0,
263 oooUsersUnaltered: 0,
264 nonOooUsersAltered: 0,
265 nonOooUsersUnaltered: 0,
266 };
267 try {

Callers 7

requests.test.tsFile · 0.90
oooRequest.test.tsFile · 0.90
addJoinDataFunction · 0.70
initializeUserFunction · 0.70
userStatus.test.jsFile · 0.50

Calls 6

convertTimestampsToUTCFunction · 0.85
getTomorrowTimeStampFunction · 0.85
filterStatusDataFunction · 0.85
resolveLastOooUntilFunction · 0.85
getMethod · 0.80

Tested by

no test coverage detected