From 6d29bc27e78bc549479cbbc203c683137ace9d48 Mon Sep 17 00:00:00 2001 From: luixal Date: Mon, 4 Jan 2021 09:43:58 +0100 Subject: Adds mapping remote field to Homer expected ones when loading message from url --- docs/tips-and-tricks.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'docs/tips-and-tricks.md') diff --git a/docs/tips-and-tricks.md b/docs/tips-and-tricks.md index 2719fc5..63eeeaf 100644 --- a/docs/tips-and-tricks.md +++ b/docs/tips-and-tricks.md @@ -113,6 +113,64 @@ docker create \ ## Get the news headlines in Homer + +### Mapping Fields +Most times, the url you're getting headlines from follows a different schema than the one expected by Homer. + +For example, if you would like to show jokes from ChuckNorris.io, you'll find that the url https://api.chucknorris.io/jokes/random is giving you info like this: + +```json +{ + "categories": [], + "created_at": "2020-01-05 13:42:22.089095", + "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png", + "id": "MR2-BnMBR667xSpQBIleUg", + "updated_at": "2020-01-05 13:42:22.089095", + "url": "https://api.chucknorris.io/jokes/MR2-BnMBR667xSpQBIleUg", + "value": "Chuck Norris can quitely sneak up on himself" +} +``` + +but... you need that info to be transformed to something like this: + +```json +{ + "title": "MR2-BnMBR667xSpQBIleUg", + "content": "Chuck Norris can quitely sneak up on himself" +} +``` + +Now, you can do that using the `mapping` field in your `message` configuration. This example would be something like this: + +```yml +message: + url: https://api.chucknorris.io/jokes/random + mapping: + title: 'id' + content: 'value' +``` + +As you would see, using the ID as a title doesn't seem nice, that's why when a field is empty it would keep the default values, like this: + +```yml +message: + url: https://api.chucknorris.io/jokes/random + mapping: + content: 'value' + title: "Chuck Norris Facts!" +``` + +and even an error message in case the `url` didn't respond or threw an error: + +```yml +message: + url: https://api.chucknorris.io/jokes/random + mapping: + content: 'value' + title: "Chuck Norris Facts!" + content: "Message could not be loaded" +``` + #### `by @JamiePhonic` Homer allows you to set a "message" that will appear at the top of the page, however, you can also supply a `url:`. -- cgit v1.2.3 From 9542de6eb25bfa20b376920b607db864c9e20a7a Mon Sep 17 00:00:00 2001 From: luixal Date: Tue, 23 Feb 2021 20:17:51 +0100 Subject: Fixes identations and link docs. --- docs/tips-and-tricks.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'docs/tips-and-tricks.md') diff --git a/docs/tips-and-tricks.md b/docs/tips-and-tricks.md index 63eeeaf..94167fb 100644 --- a/docs/tips-and-tricks.md +++ b/docs/tips-and-tricks.md @@ -145,9 +145,9 @@ Now, you can do that using the `mapping` field in your `message` configuration. ```yml message: url: https://api.chucknorris.io/jokes/random - mapping: - title: 'id' - content: 'value' + mapping: + title: 'id' + content: 'value' ``` As you would see, using the ID as a title doesn't seem nice, that's why when a field is empty it would keep the default values, like this: @@ -155,8 +155,8 @@ As you would see, using the ID as a title doesn't seem nice, that's why when a f ```yml message: url: https://api.chucknorris.io/jokes/random - mapping: - content: 'value' + mapping: + content: 'value' title: "Chuck Norris Facts!" ``` @@ -165,8 +165,8 @@ and even an error message in case the `url` didn't respond or threw an error: ```yml message: url: https://api.chucknorris.io/jokes/random - mapping: - content: 'value' + mapping: + content: 'value' title: "Chuck Norris Facts!" content: "Message could not be loaded" ``` -- cgit v1.2.3