-
Notifications
You must be signed in to change notification settings - Fork 8
Content Management
The lang
parameter is mandatory for this call.
You can add filters apidoc
contents = api.get_call("content", "list", body={"lang":"en"})
content = api.get_call("content", "get", uid="5386179638984704")
Get content with action=PAGE_EDIT
to have all relevant data.
content = api.get_call("content", "get", uid="5386179638984704", action="PAGE_EDIT")
Note: the version number is used to lock ressource. You have to put the last version number of a content in version
to be allowed to update a content, else a bad request:"CONTENT_NOT_UP_TO_DATE" will be returned.
The simplest way to create content is to use an existing template. This template could carry all design configuration.
base_template = api.get_call("template", "get", uid="123456789")
# note : it's possible to use a content as well.
new_content = {"type": "page",
"template": base_template[template],
"customContentType": base_template["customContentType"],
"customer": base_template["customer"],
"instance": base_template["instance"],
"feedKeys": base_template["feedKeys"],
"publicationDate": base_template[publicationDate],
"title": {"en": "created content from api"},
"slug": {"en": "create-content-from-api"}, # WARNING : unique
"metadata": [], # if any
}
# customize content, widget, ...
new_content_saved = api.get_call("content","save",body=new_content)
{
"id" :"134567",
"type": "page",
"status": "LIVE|ARCHIVED",
"thumbnail" : "media library url",
"publicationDate" : "2018-06-29T09:28:34.346124",
"updatedAt": "2018-06-29T09:28:34.346124",
"authorId": "23142536879786754" # set at creation time with the connected user
}
To create content on behalf other users you have to be connected with this user.
The template
property contains the whole page structure. Widgets are directly placed in this structure.
{ "template": {
"components": [
{
"type": "row",
"cells": [
{
"type": "cell",
"components":[
{
"type": "row|widget",
...
},
...]
},
...]
},
...]
}
}
You should iterate over all the structure to find the correct widget to update.
Widget can be identified by their uuid
{
"type": "widget",
"widgetType": "contact|html|...",
"uuid": "ca2bd99c-7b7e-11e8-8255-abba20e0e453",
}
Specific configuration goes in properties
. Ex for an html widget:
{
"type": "widget",
"widgetType": "html",
"uuid": "ca2bd99c-...",
"properties": {
"id": "identifier set in front > style > advance",
"class": "class set in front >style > advance",
"content":
{
"fr": "<p>Texte html balisé</p>",
"en": "<p>Html text</p>" },
}
}
The properties>id
(or class) could be used to simplify widget access from code and communication with design team.