Untitled

 avatar
unknown
plain_text
5 months ago
2.2 kB
5
Indexable
// Stack overflow supporting API methods
// Create methods which support the following operations on stackoverflow website
// == post a question
// == search question using keywords
// == reply to a question
// == Up / Down vote question
/**
 * sample entry:
 * title: {
 *      description: "bkla bla",
 *      replies: [] // array of strings
 * }
 *
 * "First Question": {
 *  replies: ["ccds"],
 *  description: "kjhjh"
 * }
 */
let userQuestions = {};

let keywordMap = {}; //

function postQuestion({ title, description }) {
  if (!title || !description) return;

  userQuestions[title] = {
    description,
    replies: [],
  };

  title.split(" ").forEach((titleKeyWord) => {
    keywordMap[titleKeyWord] = title;
  });

  return {
    message: "Question posted",
    data: userQuestions[title],
    keywordMap,
  };
}

function searchQuestion(keywordSearch) {
  if (!keywordSearch)
    return {
      message: "No search keyword",
    };
  console.log({ keywordMap });

  // assuming the keyword might be title
  //   if (!keywordMap[keywordSearch]) {
  //     return {
  //       message: "No key word found in the title map",
  //     };
  //   }

  const title = keywordMap[keywordSearch];
  console.log(title);
  return {
    title,
  };
}

function replyQuestion({ title, reply }) {
  if (!title || !reply)
    return {
      message: "No title or reply found!",
    };

  if (!userQuestions[title]) {
    return {
      message: "Title not found in user questions",
    };
  }

  console.log({ reply, data: userQuestions[title]?.replies });
  userQuestions[title]?.replies?.push(reply);

  return {
    message: "Question posted",
    data: userQuestions[title],
  };
}

function voteQuestion(question) {}

console.log(
  postQuestion({ title: "First question", description: "Testing 1st q" })
);

// ["First", "question"] --> A.contains(searcKeywoird) { push}
// console.log(
//   replyQuestion({ title: "First question", reply: "Testing 1st reply" })
// );

// console.log(
//   replyQuestion({ title: "First question", reply: "Testing 2nd reply" })
// );

console.log(searchQuestion({ keywordSearch: "question" }));
Editor is loading...
Leave a Comment