All files / server/src/features/user/signup-message signupMessageService.ts

82.35% Statements 14/17
50% Branches 4/8
100% Functions 4/4
82.35% Lines 14/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51        39x 10x 10x               10x 10x               10x 8x 8x 8x 9x   8x       8x             6x       10x            
import { findSettings } from "server/features/settings/settingsRepository";
import { findDirectSignups } from "server/features/direct-signup/directSignupRepository";
import { GetSignupMessagesResponse } from "shared/types/api/users";
export const fetchSignupMessages =
  async (): Promise<GetSignupMessagesResponse> => {
    const findSettingsResult = await findSettings();
    Iif (!findSettingsResult.ok) {
      return {
        message: "Error loading data from DB",
        status: "error",
        errorId: "unknown",
      };
    }
 
    const signupsResult = await findDirectSignups();
    Iif (!signupsResult.ok) {
      return {
        message: "Error loading data from DB",
        status: "error",
        errorId: "unknown",
      };
    }
 
    const signupMessages = signupsResult.value.flatMap((signup) => {
      return signup.userSignups.flatMap((userSignup) => {
        Eif (userSignup.message) {
          const signupQuestion = findSettingsResult.value.signupQuestions.find(
            (question) => question.programItemId === signup.programItemId,
          );
          Iif (!signupQuestion) {
            return [];
          }
 
          return {
            programItemId: signup.programItemId,
            username: userSignup.username,
            message: userSignup.message,
            private: signupQuestion.private,
          };
        }
        return [];
      });
    });
 
    return {
      signupMessages,
      message: "Succesfully loaded signup messages",
      status: "success",
    };
  };