Files
the-example-app-nodejs/routes/landingPage.js
Khaled Garbaya af575f37f5 Production build (#75)
* Production (#44)

* test: Fix integration test

* fix: Fix Editorial feature

* chore(localization): move locales to i18n folder

* feat(modules): add image caption and shadow

* fix: clarify German translation🇩🇪

* chore(localization): fix typo (#47)

* Split first paragraph into sections (#46)

* feat(controls): add help text to API dropdown

* fix(style): simplify header and fix mobile design

* fix(style): simplify footer and fix mobile design

* fix(style): update stylesheet and scripts file

* test(e2e): adjust tests and make them fail on CI

* language fixes

* rename labels to use full api name

* Refactor entry state toggle (#48)

* chore(editorialFeatures): extract editorial features toggle

* chore(refactor): rename function to make more contextual sense

* Fix breadcrumb and add test for locales (#49)

* test(unit): add test to check for locale consistency

* fix(breadcrumb): translate lessons route

* Change readme url to http from https (#52)

* tests(e2e): expect only 2 courses

* fix(cookies): fix variable naming and extend to two days maxAge

* Change text on next lesson button (#54)

* Retranslate advancedLabel

* fix(translations): do not break on vim temp files. This is dedicated to JP

* fix(analytics): use correct app-id

* Add instructions to seed a space to readme (#61)

* Change modal text; add link to model's repo to localization files (#57)

* fix(links): link correct GH repository

* fix(i18n): adjust view on github link label

* fix(style): move GitHub link to the left

* new screenshot

* Update README.md (#63)

* Update README.md

* Update README.md

* Https mistake and Heroku buton

* fixup

* fixup

* feat(heroku): add app.json

* docs(README): add linebreak

* docs(README): minor adjustments

* fix(tracking): add link click tracking to snowplow

* Add translation for edit in the web app (#64)

* chore(typo): fix error message (#67)

* chore(update): remove image rendering on lessons (#65)

* chore: Improve error page (#66)

* chore: Improve error page

* fix: Fix middlware order

* fix: Remove console.log

* fix:  no more duplicate error messges (#71)

* fix: Fix middlware order

* fix: Remove console.log

* feat: Uniq error meassages

* fix: fix cli link (#72)

* Add instructions to run app as Docker container (#68)

* feat: Minor fixes (#73)

* feat: Address JPs Feedback

* fix: settings config

* fix: fix tests

* fix: fix error display

* Fix Cookie Max Age (#74)
2017-12-01 14:20:10 +01:00

37 lines
1.2 KiB
JavaScript

/**
* This module renders a layout when its route is requested
* It is used for pages like home page
*/
const url = require('url')
const { getLandingPage } = require('../services/contentful')
const attachEntryState = require('../lib/entry-state')
const shouldAttachEntryState = require('../lib/should-attach-entry-state')
/**
* Renders a landing page when `/` route is requested
* based on the pathname an entry is queried from contentful
* and a view is rendered from the pulled data
*
* @param request - Object - Express request
* @param response - Object - Express response
* @param next - Function - Express callback
* @returns {undefined}
*/
module.exports.getLandingPage = async (request, response, next) => {
let pathname = url.parse(request.url).pathname.split('/').filter(Boolean)[0]
pathname = pathname || 'home'
let landingPage = await getLandingPage(
pathname,
response.locals.currentLocale.code,
response.locals.currentApi.id
)
// Attach entry state flags when using preview API
if (shouldAttachEntryState(response)) {
landingPage = await attachEntryState(landingPage)
}
console.log(landingPage.fields.contentModules[0].fields.course.fields.image)
response.render('landingPage', { title: pathname, landingPage })
}