Use a REST API: Difference between revisions
Content added Content deleted
(→{{header|Go}}: Added second version which allows for creating events.) |
|||
Line 568: | Line 568: | ||
console.log('Event: ', result); |
console.log('Event: ', result); |
||
})</lang> |
})</lang> |
||
=={{header|Phix}}== |
|||
Uses eventzillaapi.net instead of meetup.com, since unlike the latter it can be done for free. |
|||
Unfortunately the API (V2) does not support creating events, so instead this shows how to use |
|||
a post method to toggle sales (but see note below). |
|||
<!--<lang Phix>(notonline)--> |
|||
<span style="color: #000080;font-style:italic;">-- |
|||
-- demo\rosetta\Using_a_REST_API.exw |
|||
-- ================================= |
|||
--</span> |
|||
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> |
|||
<span style="color: #008080;">include</span> <span style="color: #000000;">libcurl</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span> |
|||
<span style="color: #008080;">include</span> <span style="color: #000000;">builtins</span><span style="color: #0000FF;">\</span><span style="color: #000000;">json</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span> |
|||
<span style="color: #008080;">constant</span> <span style="color: #000000;">base_url</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"https://www.eventzillaapi.net/api/v2/"</span> |
|||
<span style="color: #004080;">atom</span> <span style="color: #000000;">curl</span> <span style="color: #0000FF;">=</span> <span style="color: #004600;">NULL</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">pErrorBuffer</span> <span style="color: #0000FF;">=</span> <span style="color: #004600;">NULL</span> |
|||
<span style="color: #008080;">function</span> <span style="color: #000000;">get_api_key</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">inifile</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">file_exists</span><span style="color: #0000FF;">(</span><span style="color: #000000;">inifile</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #004080;">object</span> <span style="color: #000000;">lines</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">get_text</span><span style="color: #0000FF;">(</span><span style="color: #000000;">inifile</span><span style="color: #0000FF;">,</span><span style="color: #004600;">GT_LF_STRIPPED</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #004080;">sequence</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lines</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">and</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lines</span><span style="color: #0000FF;">)=</span><span style="color: #000000;">1</span> |
|||
<span style="color: #008080;">and</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">lines</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">])=</span><span style="color: #000000;">40</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #000000;">lines</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #7060A8;">crash</span><span style="color: #0000FF;">(</span><span style="color: #000000;">inifile</span> <span style="color: #0000FF;">&</span> <span style="color: #008000;">" not found or invalid"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
|||
<span style="color: #008080;">function</span> <span style="color: #000000;">query</span><span style="color: #0000FF;">(</span><span style="color: #004080;">string</span> <span style="color: #000000;">url</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">sequence</span> <span style="color: #000000;">req</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">string</span> <span style="color: #000000;">method</span><span style="color: #0000FF;">=</span><span style="color: #008000;">"GET"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000080;font-style:italic;">-- initialize curl handle if required</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">curl</span><span style="color: #0000FF;">=</span><span style="color: #004600;">NULL</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">curl</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">curl_easy_init</span><span style="color: #0000FF;">()</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">pErrorBuffer</span><span style="color: #0000FF;">=</span><span style="color: #004600;">NULL</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">pErrorBuffer</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">allocate</span><span style="color: #0000FF;">(</span><span style="color: #000000;">CURL_ERROR_SIZE</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">CURLOPT_ERRORBUFFER</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">pErrorBuffer</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">else</span> |
|||
<span style="color: #000000;">curl_easy_reset</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #000080;font-style:italic;">-- generate the POST data string |
|||
-- eg {"command","returnBalances", |
|||
-- "nonce","1515249747606"} |
|||
-- --> "command=returnBalances&nonce=1515249747606"</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">post_data</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span> |
|||
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">req</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">by</span> <span style="color: #000000;">2</span> <span style="color: #008080;">do</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">></span><span style="color: #000000;">1</span> <span style="color: #008080;">then</span> <span style="color: #000000;">post_data</span> <span style="color: #0000FF;">&=</span> <span style="color: #008000;">"&"</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">name</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">req</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">],</span> <span style="color: #000000;">v</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">req</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">]</span> |
|||
<span style="color: #000000;">post_data</span> <span style="color: #0000FF;">&=</span> <span style="color: #000000;">name</span><span style="color: #0000FF;">&</span><span style="color: #008000;">"="</span><span style="color: #0000FF;">&</span><span style="color: #000000;">v</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">method</span><span style="color: #0000FF;">=</span><span style="color: #008000;">"POST"</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CURLOPT_URL</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">base_url</span><span style="color: #0000FF;">&</span><span style="color: #000000;">url</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">CURLOPT_POSTFIELDS</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">post_data</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">else</span> |
|||
<span style="color: #000000;">url</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">base_url</span><span style="color: #0000FF;">&</span><span style="color: #000000;">url</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">post_data</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">url</span> <span style="color: #0000FF;">&=</span> <span style="color: #008000;">"?"</span><span style="color: #0000FF;">&</span><span style="color: #000000;">post_data</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">CURLOPT_URL</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">url</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">CURLOPT_HTTPGET</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">true</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #000080;font-style:italic;">-- generate the extra headers</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">api_key</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">get_api_key</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"api_key.txt"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #004080;">atom</span> <span style="color: #000000;">headers</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">curl_slist_append</span><span style="color: #0000FF;">(</span><span style="color: #004600;">NULL</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"x-api-key: "</span><span style="color: #0000FF;">&</span><span style="color: #000000;">api_key</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000000;">api_key</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">""</span> <span style="color: #000080;font-style:italic;">-- (generally good idea, avoid showing in ex.err) |
|||
-- (obvs. inlining get_api_key() call works too.)</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">CURLOPT_HTTPHEADER</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">headers</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">curl_easy_setopt</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">CURLOPT_SSL_VERIFYPEER</span><span style="color: #0000FF;">,</span> <span style="color: #004600;">false</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000080;font-style:italic;">-- run the query</span> |
|||
<span style="color: #004080;">object</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">curl_easy_perform_ex</span><span style="color: #0000FF;">(</span><span style="color: #000000;">curl</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">headers</span><span style="color: #0000FF;">!=</span><span style="color: #004600;">NULL</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">curl_slist_free_all</span><span style="color: #0000FF;">(</span><span style="color: #000000;">headers</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #004080;">integer</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000080;font-style:italic;">-- better error/retry handling probably required...</span> |
|||
<span style="color: #0000FF;">?{</span><span style="color: #008000;">"error"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">peek_string</span><span style="color: #0000FF;">(</span><span style="color: #000000;">pErrorBuffer</span><span style="color: #0000FF;">),</span><span style="color: #7060A8;">curl_easy_strerror</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">)}</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #004600;">false</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #004080;">object</span> <span style="color: #000000;">jres</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">parse_json</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">jres</span><span style="color: #0000FF;">={</span><span style="color: #000000;">JSON_INVALID</span><span style="color: #0000FF;">}</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000080;font-style:italic;">-- ditto...</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #004600;">false</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #000000;">jres</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
|||
<span style="color: #000080;font-style:italic;">-- as per the task description (but I would swap the args and call query() direct).</span> |
|||
<span style="color: #008080;">function</span> <span style="color: #000000;">get_events</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">details</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">string</span> <span style="color: #000000;">url</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #000000;">query</span><span style="color: #0000FF;">(</span><span style="color: #000000;">url</span><span style="color: #0000FF;">,</span><span style="color: #000000;">details</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
|||
<span style="color: #008080;">function</span> <span style="color: #000000;">toggle_sales</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">details</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">string</span> <span style="color: #000000;">url</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">return</span> <span style="color: #000000;">query</span><span style="color: #0000FF;">(</span><span style="color: #000000;">url</span><span style="color: #0000FF;">,</span><span style="color: #000000;">details</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"POST"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span> |
|||
<span style="color: #004080;">object</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">get_events</span><span style="color: #0000FF;">({</span><span style="color: #008000;">"status"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"live"</span><span style="color: #0000FF;">},</span><span style="color: #008000;">"events"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000080;font-style:italic;">--object res = get_events({},"events")</span> |
|||
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">print_json</span><span style="color: #0000FF;">(</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #000000;">res</span><span style="color: #0000FF;">))</span> |
|||
<span style="color: #004080;">string</span> <span style="color: #000000;">id</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"2138822407"</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- (see note)</span> |
|||
<span style="color: #000000;">status</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"true"</span> |
|||
<span style="color: #008080;">if</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">!={-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,{</span><span style="color: #008000;">`message`</span><span style="color: #0000FF;">,</span><span style="color: #008000;">`No events found`</span><span style="color: #0000FF;">}}</span> <span style="color: #008080;">then</span> |
|||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">extract_json_field</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"events_live"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #000080;font-style:italic;">-- res = extract_json_field(res,"events")</span> |
|||
<span style="color: #000000;">id</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"%d"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">extract_json_field</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">],</span><span style="color: #008000;">"id"</span><span style="color: #0000FF;">))</span> |
|||
<span style="color: #000000;">status</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">extract_json_field</span><span style="color: #0000FF;">(</span><span style="color: #000000;">res</span><span style="color: #0000FF;">[</span><span style="color: #000000;">2</span><span style="color: #0000FF;">],</span><span style="color: #008000;">"status"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"id:%s, status:%s\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">id</span><span style="color: #0000FF;">,</span><span style="color: #000000;">status</span><span style="color: #0000FF;">})</span> |
|||
<span style="color: #000000;">status</span> <span style="color: #0000FF;">=</span> <span style="color: #008080;">iff</span><span style="color: #0000FF;">(</span><span style="color: #000000;">status</span><span style="color: #0000FF;">=</span><span style="color: #008000;">"Live"</span><span style="color: #0000FF;">?</span><span style="color: #008000;">"false"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"true"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span> |
|||
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">toggle_sales</span><span style="color: #0000FF;">({</span><span style="color: #008000;">"eventid"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">id</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"status"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">status</span><span style="color: #0000FF;">},</span><span style="color: #008000;">"events/togglesales"</span><span style="color: #0000FF;">)</span> |
|||
<span style="color: #7060A8;">puts</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">print_json</span><span style="color: #0000FF;">(</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #000000;">res</span><span style="color: #0000FF;">))</span> |
|||
<!--</lang>--> |
|||
Note that toggling sales off makes the (manually created) event invisible to the API, even without |
|||
the {"status","live"} filter, hence I had to hard-code the event id to permit a second run to turn |
|||
it back on. Also as shown omitting said filter changes the field name on the returned results... |
|||
{{out}} |
|||
<pre> |
|||
{ |
|||
"pagination":[ |
|||
{ |
|||
"offset":0, |
|||
"limit":20, |
|||
"total":1, |
|||
"category":"" |
|||
} |
|||
], |
|||
"events_live":[ |
|||
{ |
|||
"id":2138822407, |
|||
"title":"Phix Programming in the park party", |
|||
"description":"Learn how to program while wearing gloves", |
|||
"currency":"GBP", // nb: unicode pound symbol replaced manually |
|||
"start_date":"2021-12-30T00:00:00", |
|||
"start_time":"14:00", |
|||
"end_date":"2021-12-30T00:00:00", |
|||
"end_time":"14:10", |
|||
"time_zone":"(GMT+0000) United Kingdom Time", |
|||
"tickets_sold":0, |
|||
"tickets_total":4, |
|||
"status":"Live", |
|||
"show_remaining":false, |
|||
"twitter_hashtag":"", |
|||
"utc_offset":"+00:00", |
|||
"invite_code":"", |
|||
"url":"https://events.eventzilla.net/e/phix-programming-in-the-park-party-2138822407", |
|||
"logo_url":"", |
|||
"bgimage_url":"https://s3.amazonaws.com/ezusrevent/party-small13.jpg", |
|||
"venue":"Acacia gardens, London, England, United Kingdom", |
|||
"dateid":2138353105, |
|||
"categories":"Class, Training, or Workshop", |
|||
"language":"en", |
|||
"description_html":"<p>Learn how to program while wearing gloves</p>", |
|||
"timezone_code":"GMT" |
|||
} |
|||
] |
|||
} |
|||
id:2138822407, status:Live |
|||
{ |
|||
"eventstatus":"unpublished" |
|||
} |
|||
</pre> |
|||
Second/alternate run: |
|||
<pre> |
|||
{ |
|||
"message":"No events found" |
|||
} |
|||
{ |
|||
"eventstatus":"published" |
|||
} |
|||
</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |