diff --git a/index.js b/index.js index 1523c56..7bcef5c 100644 --- a/index.js +++ b/index.js @@ -21,8 +21,18 @@ const websites = require("./routes/apa/websites"); const youTube = require("./routes/apa/youTube"); const movies = require("./routes/apa/movies"); +const youtube = require("./routes/apa/youtube"); +const television = require("./routes/apa/television"); +const episode = require("./routes/apa/episode"); +const journal = require("./routes/apa/journal"); +const speech = require("./routes/apa/speech"); +const SpecialIssueAPA = require("./routes/apa/issue"); +const section = require("./routes/apa/section"); +const software = require("./routes/apa/software"); +const video = require("./routes/apa/video"); + // == MLA (format) == -const booksMLA = require("./routes/mla/books") +const booksMLA = require("./routes/mla/books"); const journMagNews = require("./routes/mla/journMagNews"); // === APP === @@ -50,6 +60,17 @@ app.use("/api/apa/websites", websites); app.use("/api/apa/youtube", youTube); app.use("/api/apa/movies", movies); + +app.use("/api/apa/you-tube", youtube); +app.use("/api/apa/television", television); +app.use("/api/apa/episode", episode); +app.use("/api/apa/journal", journal); +app.use("/api/apa/speech", speech); +app.use("/api/apa/issue", SpecialIssueAPA); +app.use("/api/apa/section", section); +app.use("/api/apa/software", software); +app.use("/api/apa/video", video); + // == MLA (format) == app.use("/api/mla/books", booksMLA); app.use("/api/mla/journal-magazine-newspaper", journMagNews); diff --git a/routes/apa/episode.js b/routes/apa/episode.js new file mode 100644 index 0000000..8d17168 --- /dev/null +++ b/routes/apa/episode.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeEpisode } = require("../../utils/apa/citing/episodeAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeEpisode(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/issue.js b/routes/apa/issue.js new file mode 100644 index 0000000..731e14c --- /dev/null +++ b/routes/apa/issue.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeSpecial } = require("../../utils/apa/citing/SpecialIssueAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeSpecial(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/journal.js b/routes/apa/journal.js new file mode 100644 index 0000000..65f7e1f --- /dev/null +++ b/routes/apa/journal.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeJournal } = require("../../utils/apa/citing/journalAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeJournal(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/section.js b/routes/apa/section.js new file mode 100644 index 0000000..58e9dcf --- /dev/null +++ b/routes/apa/section.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeSection } = require("../../utils/apa/citing/sectionAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeSection(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/software.js b/routes/apa/software.js new file mode 100644 index 0000000..28b7777 --- /dev/null +++ b/routes/apa/software.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeSoftware } = require("../../utils/apa/citing/softwareAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeSoftware(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/speech.js b/routes/apa/speech.js new file mode 100644 index 0000000..197a7c9 --- /dev/null +++ b/routes/apa/speech.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeSpeech } = require("../../utils/apa/citing/speechAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeSpeech(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/television.js b/routes/apa/television.js new file mode 100644 index 0000000..3fa7114 --- /dev/null +++ b/routes/apa/television.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeTelevision } = require("../../utils/apa/citing/televisionAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeTelevision(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/video.js b/routes/apa/video.js new file mode 100644 index 0000000..649a7e6 --- /dev/null +++ b/routes/apa/video.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeVideo} = require("../../utils/apa/citing/videoAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeVideo(data); + + res.send(result); +}); + +module.exports = router; diff --git a/routes/apa/yt.js b/routes/apa/yt.js new file mode 100644 index 0000000..6838425 --- /dev/null +++ b/routes/apa/yt.js @@ -0,0 +1,12 @@ +const express = require("express"); +const router = express.Router(); +const { citeYoutube } = require("../../utils/apa/citing/youtubeAPA.js"); + +router.post("/", (req, res) => { + const data = req.body; + const result = citeYoutube(data); + + res.send(result); +}); + +module.exports = router; diff --git a/utils/apa/citing/SpecialIssue.js b/utils/apa/citing/SpecialIssueAPA.js similarity index 76% rename from utils/apa/citing/SpecialIssue.js rename to utils/apa/citing/SpecialIssueAPA.js index 853fb9c..5f0aacd 100644 --- a/utils/apa/citing/SpecialIssue.js +++ b/utils/apa/citing/SpecialIssueAPA.js @@ -4,7 +4,7 @@ const { getFormattedAuthors } = require("../helper/authors"); const citeSpecial = ({ author, date, title, producer }) => { const formattedAuthors = getFormattedAuthors (author); const formattedDate = getFormattedDate(date); - const referenceCitation = `${formattedAuthors} ${formattedDate} ${title} [Speacial Issue]. ${producer}`; + const referenceCitation = `${formattedAuthors} (Eds.). ${formattedDate} ${title} [Speacial Issue]. ${producer}`; return referenceCitation; }; @@ -28,4 +28,5 @@ data = { producer: "International Journal of Memes", }; -console.log(citeSpecial(data)); \ No newline at end of file +//console.log(citeSpecial(data)); +module.exports = { citeSpecial }; \ No newline at end of file diff --git a/utils/apa/citing/episodeAPA.js b/utils/apa/citing/episodeAPA.js new file mode 100644 index 0000000..fa5fc27 --- /dev/null +++ b/utils/apa/citing/episodeAPA.js @@ -0,0 +1,35 @@ +const { getFormattedAuthors } = require("../helper/authors"); + +const citeEpisode = ({ author, year, title, producer, company }) => { + const formattedAuthors = getFormattedAuthors (author); + const formattedYear = year ? year : `n.d.` + const referenceCitation = `${formattedAuthors}. (${formattedYear}). + ${title} (Season 4, Episode 17) [TV series episode]. ${producer} (Executive producer) ${company}`; + + return referenceCitation; +}; + + +data = { + author: [ + { + firstName: "D.", + middleInitial: "", + lastName: "Egan", + role: "Writer", + }, + { + firstName: "J.", + middleInitial: "", + lastName: "Alexander", + role: "Director", + }, + ], + year: "2005", + title: "Failure to communicate", + producer: "In D. Shore", + company: "Fox Broadcasting", +}; + +//console.log(citeEpisode(data)); +module.exports = { citeEpisode }; \ No newline at end of file diff --git a/utils/apa/citing/journalAPA.js b/utils/apa/citing/journalAPA.js new file mode 100644 index 0000000..39136d2 --- /dev/null +++ b/utils/apa/citing/journalAPA.js @@ -0,0 +1,32 @@ +const { getFormattedAuthors } = require("../helper/authors"); + +const citeJournal = ({ author, year, title, titlecase, page }) => { + const formattedAuthors = getFormattedAuthors (author); + const formattedYear = year ? year : `n.d.` + const referenceCitation = `${formattedAuthors}. (${formattedYear}). ${title} . ${titlecase}, 42(Suppl. 2), ${page}.`; + + return referenceCitation; +}; + + +data = { + author: [ + { + firstName: "D.", + middleInitial: "", + lastName: "Vahey", + }, + { + firstName: "L.", + middleInitial: "", + lastName: "Aiken", + }, + ], + year: "2004", + title: "Nurse burnout and patient satisfaction", + titlecase: "Medical Care", + page: "57-66", +}; + +//console.log(citeJournal(data)); +module.exports = { citeJournal }; \ No newline at end of file diff --git a/utils/apa/citing/movieAPA.js b/utils/apa/citing/movieAPA.js index 8dfd1cb..40c71cc 100644 --- a/utils/apa/citing/movieAPA.js +++ b/utils/apa/citing/movieAPA.js @@ -9,25 +9,25 @@ const citeMovie = ({ author, year, title, company }) => { }; -// data = { -// author: [ -// { -// firstName: "F.", -// middleInitial: "", -// lastName: "Davidson", -// role: "Producer", -// }, -// { -// firstName: "J.", -// middleInitial: "", -// lastName: "Davidson", -// role: "Director", -// }, -// ], -// year: "2000", -// title: "B. F. Skinner: A fresh appraisal", -// company: "USA: Davidson Films", -// }; +data = { + author: [ + { + firstName: "F.", + middleInitial: "", + lastName: "Davidson", + role: "Producer", + }, + { + firstName: "J.", + middleInitial: "", + lastName: "Davidson", + role: "Director", + }, + ], + year: "2000", + title: "B. F. Skinner: A fresh appraisal", + company: "USA: Davidson Films", +}; -// console.log(citeMovie(data)); +console.log(citeMovie(data)); module.exports = { citeMovie }; \ No newline at end of file diff --git a/utils/apa/citing/sectionAPA.js b/utils/apa/citing/sectionAPA.js new file mode 100644 index 0000000..721d877 --- /dev/null +++ b/utils/apa/citing/sectionAPA.js @@ -0,0 +1,31 @@ +const { getFormattedAuthors } = require("../helper/authors"); + +const citeSection = ({ author, year, title, producer }) => { + const formattedAuthors = getFormattedAuthors (author); + const formattedYear = year ? year : `n.d.` + const referenceCitation = `${formattedAuthors} (Eds.). ${formattedYear} ${title} [Special section]. ${producer}, 32(2), 415–565.`; + + return referenceCitation; +}; + + +data = { + author: [ + { + firstName: "L.", + middleInitial: "", + lastName: "Jenkins", + }, + { + firstName: "R .", + middleInitial: "", + lastName: "Astley", + }, + ], + year: "2012", + title: "Beyond the LOLcats: Maru, Nyan Cat, and more", + producer: "International Journal of Memes", +}; + +console.log(citeSection(data)); +module.exports = { citeSection }; \ No newline at end of file diff --git a/utils/apa/citing/softwareAPA.js b/utils/apa/citing/softwareAPA.js new file mode 100644 index 0000000..b3fc16e --- /dev/null +++ b/utils/apa/citing/softwareAPA.js @@ -0,0 +1,27 @@ +const { getFormattedAuthors } = require("../helper/authors"); + +const citeSoftware = ({ author, year, title, place, producer }) => { + const formattedAuthors = getFormattedAuthors (author); + const formattedYear = year ? year : `n.d.` + const referenceCitation = `${formattedAuthors} ${formattedYear} ${title} [Computer software]. ${place}, ${producer}`; + + return referenceCitation; +}; + + +data = { + author: [ + { + firstName: "A.", + middleInitial: "N.", + lastName: "Esolang", + }, + ], + year: "2014", + title: "Obscure Reference Generator", + place: "Washington", + producer: "DC: E & K Press", +}; + +//console.log(citeSoftware(data)); +module.exports = { citeSoftware }; \ No newline at end of file diff --git a/utils/apa/citing/speechAPA.js b/utils/apa/citing/speechAPA.js index aad1456..767c6f5 100644 --- a/utils/apa/citing/speechAPA.js +++ b/utils/apa/citing/speechAPA.js @@ -4,7 +4,7 @@ const { getFormattedAuthors } = require("../helper/authors"); const citeSpeech = ({ author, date, title, place, publisher }) => { const formattedAuthors = getFormattedAuthors (author); const formattedDate = getFormattedDate(date); - const referenceCitation = `${formattedAuthors} (Ed.). ${formattedDate} ${title}. ${place}, ${publisher}`; + const referenceCitation = `${formattedAuthors} (Ed.). ${formattedDate} ${title}. ${place}, ${publisher}.`; return referenceCitation; }; @@ -21,7 +21,8 @@ data = { date: new Date(2010), title: "Well said! Great speeches in American history", place: "Washington", - publisher: "http://www.youtube.com/watch?v=6nyGCbxD848", + publisher: "DC: E & K Publishing", }; -console.log(citeSpeech(data)); \ No newline at end of file +//console.log(citeSpeech(data)); +module.exports = { citeSpeech }; \ No newline at end of file diff --git a/utils/apa/citing/televisionAPA.js b/utils/apa/citing/televisionAPA.js index be6857e..d1183c4 100644 --- a/utils/apa/citing/televisionAPA.js +++ b/utils/apa/citing/televisionAPA.js @@ -18,9 +18,10 @@ data = { lastName: "Smith", }, ], - date: new Date(2000, 8, 19), + date: new Date(1999, 8, 19), title: "Every day News", publisher: "West Broadcasting", }; -console.log(citeTelevision(data)); \ No newline at end of file +//console.log(citeTelevision(data)); +module.exports = { citeTelevision }; \ No newline at end of file diff --git a/utils/apa/citing/videoAPA.js b/utils/apa/citing/videoAPA.js new file mode 100644 index 0000000..5f1df4f --- /dev/null +++ b/utils/apa/citing/videoAPA.js @@ -0,0 +1,19 @@ + +const citeVideo = ({ studio, year, title, place, company }) => { + const formattedYear = year ? year : `n.d.` + const referenceCitation = `${studio} ${title} [Video game]. ${formattedYear} ${place}, ${company}`; + + return referenceCitation; +}; + + +data = { + studio: "Bethesda Game Studios", + year: "2011", + title: "Skyrim", + place: "Bethesda", + company: "Bethesda Softworks", +}; + +//console.log(citeVideo(data)); +module.exports = { citeVideo }; \ No newline at end of file diff --git a/utils/apa/citing/youtubeAPA.js b/utils/apa/citing/youtubeAPA.js new file mode 100644 index 0000000..6d64ba7 --- /dev/null +++ b/utils/apa/citing/youtubeAPA.js @@ -0,0 +1,27 @@ +const { getFormattedDate } = require("../helper/dates"); +const { getFormattedAuthors } = require("../helper/authors"); + +const citeYoutube = ({ author, date, title, url }) => { + const formattedAuthors = getFormattedAuthors (author); + const formattedDate = getFormattedDate(date); + const referenceCitation = `${formattedAuthors} ${formattedDate} ${title} [Video]. ${url}`; + + return referenceCitation; +}; + + +data = { + author: [ + { + firstName: " ", + middleInitial: " ", + lastName: "Bellofolletti", + }, + ], + date: new Date(2009, 3, 8), + title: "Ghost caught on surveillance camera", + url: "http://www.youtube.com/watch?v=Dq1ms2JhYBI&feature=related", +}; + +//console.log(citeYoutube(data)); +module.exports = { citeYoutube }; \ No newline at end of file diff --git a/utils/apa/citing/ytAPA.js b/utils/apa/citing/ytAPA.js index 730f644..00f0813 100644 --- a/utils/apa/citing/ytAPA.js +++ b/utils/apa/citing/ytAPA.js @@ -10,18 +10,18 @@ const citeYouTube = ({ author, date, title, url }) => { }; -// //data = { -// // author: [ -// // { -// // firstName: "M.", -// // middleInitial: "", -// lastName: "Apsolon", -// }, -// ], -// date: new Date(2011, 8, 9), -// title: "Real ghost girl caught on Video Tape 14", -// url: "http://www.youtube.com/watch?v=6nyGCbxD848", -// }; +data = { + author: [ + { + firstName: "M.", + middleInitial: "", + lastName: "Apsolon", + }, + ], + date: new Date(2011, 8, 9), + title: "Real ghost girl caught on Video Tape 14", + url: "http://www.youtube.com/watch?v=6nyGCbxD848", +}; -// console.log(citeYouTube(data)); +console.log(citeYouTube(data)); module.exports = { citeYouTube }; \ No newline at end of file