diff options
author | luixal <luixal@gmail.com> | 2021-01-04 09:43:58 +0100 |
---|---|---|
committer | luixal <luixal@gmail.com> | 2021-01-04 09:43:58 +0100 |
commit | 6d29bc27e78bc549479cbbc203c683137ace9d48 (patch) | |
tree | 29e7de508e38c4f01706e81e8176390e70e3ba0d /docs/tips-and-tricks.md | |
parent | 3786f80dae2df7780d19ba8ffd9374ef3c2fc30f (diff) | |
download | homer-6d29bc27e78bc549479cbbc203c683137ace9d48.tar.gz homer-6d29bc27e78bc549479cbbc203c683137ace9d48.tar.zst homer-6d29bc27e78bc549479cbbc203c683137ace9d48.zip |
Adds mapping remote field to Homer expected ones when loading message from url
Diffstat (limited to 'docs/tips-and-tricks.md')
-rw-r--r-- | docs/tips-and-tricks.md | 58 |
1 files changed, 58 insertions, 0 deletions
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 \ | |||
113 | 113 | ||
114 | 114 | ||
115 | ## Get the news headlines in Homer | 115 | ## Get the news headlines in Homer |
116 | |||
117 | ### Mapping Fields | ||
118 | Most times, the url you're getting headlines from follows a different schema than the one expected by Homer. | ||
119 | |||
120 | 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: | ||
121 | |||
122 | ```json | ||
123 | { | ||
124 | "categories": [], | ||
125 | "created_at": "2020-01-05 13:42:22.089095", | ||
126 | "icon_url": "https://assets.chucknorris.host/img/avatar/chuck-norris.png", | ||
127 | "id": "MR2-BnMBR667xSpQBIleUg", | ||
128 | "updated_at": "2020-01-05 13:42:22.089095", | ||
129 | "url": "https://api.chucknorris.io/jokes/MR2-BnMBR667xSpQBIleUg", | ||
130 | "value": "Chuck Norris can quitely sneak up on himself" | ||
131 | } | ||
132 | ``` | ||
133 | |||
134 | but... you need that info to be transformed to something like this: | ||
135 | |||
136 | ```json | ||
137 | { | ||
138 | "title": "MR2-BnMBR667xSpQBIleUg", | ||
139 | "content": "Chuck Norris can quitely sneak up on himself" | ||
140 | } | ||
141 | ``` | ||
142 | |||
143 | Now, you can do that using the `mapping` field in your `message` configuration. This example would be something like this: | ||
144 | |||
145 | ```yml | ||
146 | message: | ||
147 | url: https://api.chucknorris.io/jokes/random | ||
148 | mapping: | ||
149 | title: 'id' | ||
150 | content: 'value' | ||
151 | ``` | ||
152 | |||
153 | 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: | ||
154 | |||
155 | ```yml | ||
156 | message: | ||
157 | url: https://api.chucknorris.io/jokes/random | ||
158 | mapping: | ||
159 | content: 'value' | ||
160 | title: "Chuck Norris Facts!" | ||
161 | ``` | ||
162 | |||
163 | and even an error message in case the `url` didn't respond or threw an error: | ||
164 | |||
165 | ```yml | ||
166 | message: | ||
167 | url: https://api.chucknorris.io/jokes/random | ||
168 | mapping: | ||
169 | content: 'value' | ||
170 | title: "Chuck Norris Facts!" | ||
171 | content: "Message could not be loaded" | ||
172 | ``` | ||
173 | |||
116 | #### `by @JamiePhonic` | 174 | #### `by @JamiePhonic` |
117 | 175 | ||
118 | Homer allows you to set a "message" that will appear at the top of the page, however, you can also supply a `url:`. | 176 | Homer allows you to set a "message" that will appear at the top of the page, however, you can also supply a `url:`. |