Go to file
Simon Backx b545dfa0cc
Improved recommendation controller structure (#18208)
fixes https://github.com/TryGhost/Product/issues/3900

1. The service never returns a Recommendation Entity, but always plain
objects (which for now is the same as Recommendation without the
methods).
2. Updated the controller to be more readable and minimal (we keep this
controller, in addition to the existing endpoints and serializers)
- The controller does minimal validation and allows for type checking
(so we get compile time errors in case the service expects new fields)
- The controller uses the `UnsafeData` class to easily validate the
input from requests, and throws appropriate errors (with correct field
descriptions — "Expected a string at recommendations.0.title") without
too much boilerplate code. In addition the interface is typed, so we get
compile errors if there are breaking changes in the service.
- Removed `EntityWithIncludes`, since we now use plain objects, we
inject the relations directly into those plain objects (with some new
types that add type support)
- Added new tests to make sure that edits only affect the given fields,
and never undefined fields
2023-09-18 14:36:49 +00:00
.github Deleted custom-build workflow 2023-09-15 10:48:08 +02:00
.vscode Removed accidentally committed editor settings (#17546) 2023-07-31 22:28:09 +01:00
apps Updated select to use react-select (#18164) 2023-09-18 14:51:59 +01:00
ghost Improved recommendation controller structure (#18208) 2023-09-18 14:36:49 +00:00
.editorconfig
.gitattributes
.gitignore Configured storing Nx cache in GHA to speed up builds 2023-07-14 08:52:01 +02:00
.gitmodules
LICENSE
nx.json Added shared tsconfig.json to list of files to build when changed 2023-07-21 14:17:21 +02:00
package.json Update dependency nx to v16.8.1 2023-09-15 10:27:46 +02:00
PRIVACY.md
README.md Reworked CI workflow to optimize setup 2023-07-04 12:03:34 +02:00
SECURITY.md
yarn.lock Update dependency mailgun.js to v9.3.0 2023-09-18 14:01:45 +00:00

 

Ghost Ghost

 

Ghost.orgForumDocsContributingTwitter

Downloads Latest release Build status Contributors

Love open source? We're hiring JavaScript engineers to work on Ghost full-time.

 

Fiercely independent, professional publishing. Ghost is the most popular open source, headless Node.js CMS which already works with all the tools you know and love.

 

Ghost(Pro) Ghost(Pro)

The easiest way to get a production instance deployed is with our official Ghost(Pro) managed service. It takes about 2 minutes to launch a new site with worldwide CDN, backups, security and maintenance all done for you.

For most people this ends up being the best value option because of how much time it saves — and 100% of revenue goes to the Ghost Foundation; funding the maintenance and further development of the project itself. So youll be supporting open source software and getting a great service!

 

Quickstart install

If you want to run your own instance of Ghost, in most cases the best way is to use our CLI tool

npm install ghost-cli -g

 

Then, if installing locally add the local flag to get up and running in under a minute - Local install docs

ghost install local

 

or on a server run the full install, including automatic SSL setup using LetsEncrypt - Production install docs

ghost install

 

Check out our official documentation for more information about our recommended hosting stack & properly upgrading Ghost, plus everything you need to develop your own Ghost themes or work with our API.

Contributors & advanced developers

For anyone wishing to contribute to Ghost or to hack/customize core files we recommend following our full development setup guides: Contributor guideDeveloper setup

 

Ghost sponsors

We'd like to extend big thanks to our sponsors and partners who make Ghost possible. If you're interested in sponsoring Ghost and supporting the project, please check out our profile on GitHub sponsors ❤️

DigitalOceanFastly

 

Getting help

You can find answers to a huge variety of questions, along with a large community of helpful developers over on the Ghost forum - replies are generally very quick. Ghost(Pro) customers also have access to 24/7 email support.

To stay up to date with all the latest news and product updates, make sure you subscribe to our blog — or you can always follow us on Twitter, if you prefer your updates bite-sized and facetious. 🎷🐢

 

Copyright & license

Copyright (c) 2013-2023 Ghost Foundation - Released under the MIT license. Ghost and the Ghost Logo are trademarks of Ghost Foundation Ltd. Please see our trademark policy for info on acceptable usage.