- Added API to find channels that have a particular stage configured from god mode
- Updated to Playframework 2.7.0
- [RAW] changed default
RawChannelSiteBuilding
configuration from empty Optional to None - implemented master channel inheritance for
RawChannelSiteBuilding
- [RAW] added optional field
logo
as part ofRawChannelStageCustomModule
Changes
- (breaking) changed signature of the
AbstractSerivce
to:- Allow other
methods
than get by setting themethod: "POST"
in the ServiceConfig - Allow other content types than
JSON
by changing the signature of thevalidate
function (see changes ->ContentService
for an example implementation) - Made
basic auth credentials
/Api key
optional: Its now possible to omit credentials
- Allow other
Changes
- added
RawChannelSiteBuilding
for configuring channel header, footer and sponsoring.
Deprecations
- Deprecated
RawChannelHeader
andRawSponsoringConfig
MenuService
: removed auto sync cron job. It's now part of the consumer.MenuService
: addrefresh()
for sync data from S3.MenuService
: add newConfiguration
valuemode
to override the S3 env folder. This is for testing prod data on localhost.
All WC/AC models must include a prefix for better identification in code reviews. Bring your own models (BYOM) => consume the api + api models but create new models for your application logic / templates.
- renamed case classes:
Menu
->ApiMenu
,MenuMetadata
->ApiMenuMetadata
andMenuLink
->ApiMenuLink
- removed
MenuReference
(replaced byApiReference
) - refactoring of
MenuService
andAdminMenuService
- added new project called
menu
- added
MenuService
for retrieving menu data from S3 - added case classes
Menu
,MenuMetadata
,MenuLink
andMenuReference
- Moved
AdminMenuService
tomenu
project - Removed case classes
RawMenu
andRawMenuLink
- added
RawChannelStageConfiguredId
as a new main stage type - this allows single ids to be configured on section pages without the need of Papyrus Curation
- example usecases: Advertorial Footers, oEmbeds (WM, Podcasts,...)
- added
AdminMenuService
for storing menu data on S3 - added case classes
RawMenu
andRawMenuLink
- Added optional sponsoring to
ApiStageConfiguration
Changes
- introduced new
TreeService
as an abstraction to theRawTreeService
in the front end - Migrated the
AuthorService
from funkotron into the capi to allow using it within cigger (why: author augmenting) RawTreeService
will not access s3 when app is started inMode.Test
- Play Framework version bump to
2.6.15
Deprecations
- Deprecated large parts of
ApiAuthor
in favor of augmenting authors json into therelated
array of theApiPressedContent
- Changed signature of cigger to
ApiPressedContentResponse
- added
ApiPressedContentResponse
- bumped to Play 2.6.12
- add optional http headers in AbstractService
- definition which Exceptions will cause the breaker to stay open or allow close. e.g.
HttpClientErrorException
andHttpRedirectException
will keep the breaker closed (this is good)- whereas
HttpServerErrorException
and any other exception may open the breaker
- introduced circuit breaker pattern in AbstractService
- Playframework 2.6.6
- Added Cigger Support
- AbstractService is now an
abstract class
(instead of atrait
) ExecutionContexts
should now be@Injected
everywhere instead of being passed asimplicit
parameters
- Upgraded to Playframework 2.6.2
- Playframework 2.6 (dropped 2.4 & 2.5)
- Scala 2.12 (dropped 2.11)
- [CORE-CLIENT] add Service
ContentBatchService
to allow digger to resolve all Ids of a stage with one call
- [CORE] add field
validFromDate
toApiMetadata
- [RAW] added field
hideCuratedStageLabel
as part ofRawChannelStageCurated
- [MISSING DATA]
- [RAW] added param
brandstation
as part ofRawChannelSponsoring
- [PRESSED] added param
brandstation
as part ofApiSponsoringConfiguration
- [CORE] Delete
PapyrusRepository
and `CurationService (in-sourced to Digger) - [LEGACY] Delete Module
Legacy
- Models and Client (da-hood was 100% replaced by Digger)
- [RAW] bugfix filter empty map values (overrides)
- [RAW] bugfix correct json.writes of stages
- [CORE] move
Strings.scala
to [UTILS]
before
de.welt.contentapi.core.client.utilities.Strings
after
de.welt.contentapi.utils.Strings
- [RAW] added case class property
master: Boolean
toRawChannelConfiguration
- [PRESSED] change impl. of master-channel (inheritance) calculation
/
- Future proof JSON parsing
- Digger can ignore unknown new modules from CMCF
- CMCF can be rolled out with new Modules that are not yet known to Digger will be ignored
- added case class
RawChannelStageIgnored
PressedSectionService
now wraps its responses- the wrapper contains information about
time
,status
,source
, .. of the pressed result - those wrapped models are uploaded to S3
- alternate treatment of backend calls when in
Dev Mode
- the wrapper contains information about
- Changed logging to typesafe's scala-logging (should increase performance and reduce memory)
- minor fixes like typos
- the models in S3 and the
PressedSectionService
are now wrapped (JSON changed)
- the Logger automatically does the
log.isLevelEnabled()
and therefore permits calling this directly. Just remove theif
. - As for the wrapped JSON: You could simply unwrap it to use the previous models.
- use Guice directly instead of Play's DI abstraction.
- Play's DI and Guice are compatible to some extend, but you should consider using Guice's interfaces if you access the WC/AC DI-Modules directly
Follow DI as described here https://www.playframework.com/documentation/2.5.x/ScalaDependencyInjection
- migrate your code from
play.api.inject.Module
tocom.google.inject.AbstractModule
- change from
def bindings(environment: Environment, configuration: Configuration): Seq[Binding[_]]
toprotected abstract void configure()
- for module-dependencies, use
install(m: Module)
- migrated to wrapped search endpoint that allows paginated searches
- none, if migration is applied
- just call
searchResponse.map(_.results)
to unwrap the search result and use the old models - update the search
endpoint
in your configuration to/content/wrapped/_search
- params for the
AbstractService
are getting trimmed now (remove leading and trailing white space) Fixes #42
- type safe rewrite of the
ApiContentSearch
- made the
RequestHeader
nonOptional
, but initialize withSeq.empty
instead
ContentApiQuery
flags
will be deprecated in favour of the new search parameterflag
: In our API we currently only have two flags:highlight
andpremium
and the negation of those. With the newflag
search parameter you can combine/exclude those flags, e.g.flag: [premium, no_highlight]
orflag: [no_premium, no_highlight]
. The results are a conjunction of the flags (the terms are anded ->!premium && !highlight
.subTypeExcludes
(some of them formerly available through theflags
) are moving into thesubType
search parameter, use the negated version of the corresponding subTypesubType
search parameter will now allow list inputs, allowing you to do things assubType: [no_broadcast, no_video, no_printImport, no_oembed]
- added missing default case to
ApiChannel
Initial Version