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

Function createEventCode

models/events.js:203–259  ·  view source on GitHub ↗
(eventCodeData)

Source from the content-addressed store, hash-verified

201 */
202
203const createEventCode = async (eventCodeData) => {
204 try {
205 const eventRef = eventModel.doc(eventCodeData.event_id);
206 const eventSnapshot = await eventRef.get();
207 const eventSnapshotData = eventSnapshot.data();
208 const createdAndUpdatedAt = admin.firestore.Timestamp.now();
209 const docRef = eventCodeModel.doc(eventCodeData.id);
210
211 await docRef.set({ ...eventCodeData, created_at: createdAndUpdatedAt, updated_at: createdAndUpdatedAt });
212
213 const docSnapshot = await docRef.get();
214 const data = docSnapshot.data();
215
216 const previouslyPresentEventCodes = eventSnapshotData?.event_codes?.by_role?.mavens && [
217 ...eventSnapshotData?.event_codes?.by_role?.mavens,
218 ];
219
220 if (!data) throw new Error();
221
222 if (previouslyPresentEventCodes?.length) {
223 await eventRef.update({
224 event_codes: {
225 by_role: {
226 mavens: [...previouslyPresentEventCodes, data?.id],
227 },
228 },
229 });
230 } else {
231 await eventRef.update({
232 event_codes: {
233 by_role: {
234 mavens: [data?.id],
235 },
236 },
237 });
238 }
239
240 const updatedEventRef = eventModel.doc(eventCodeData.event_id);
241 const updatedEventSnapshot = await updatedEventRef.get();
242 const updatedEventSnapshotData = updatedEventSnapshot.data();
243 const allEventCodesIdsForMavens = updatedEventSnapshotData?.event_codes?.by_role?.mavens;
244
245 const allEventCodesIdsForMavensPromises = allEventCodesIdsForMavens.map(async (eventCodeRefId) => {
246 const eventCodeRef = eventCodeModel.doc(eventCodeRefId);
247 const eventCodeSnapshot = await eventCodeRef.get();
248 const eventCodeData = eventCodeSnapshot.data();
249 return eventCodeData;
250 });
251
252 const allEventCodesForMavens = await Promise.all(allEventCodesIdsForMavensPromises);
253
254 return allEventCodesForMavens;
255 } catch (error) {
256 logger.error("Error in creating event code", error);
257 throw error;
258 }
259};
260

Callers

nothing calls this directly

Calls 1

getMethod · 0.80

Tested by

no test coverage detected