mirror of
https://github.com/urbit/shrub.git
synced 2024-12-24 20:47:27 +03:00
71 lines
1.5 KiB
Plaintext
71 lines
1.5 KiB
Plaintext
::
|
|
|%
|
|
:: Splits a path into the endpoint prefix and the remainder,
|
|
:: which is assumed to be a path within the JSON object. We
|
|
:: choose the longest legal endpoint prefix.
|
|
::
|
|
++ split
|
|
|= pax/path
|
|
:: =- ~& [%pax pax - (valid-endpoint pax)] -
|
|
=+ l=(lent pax)
|
|
|- ^- {path path}
|
|
?: ?=(valid-get-endpoint (scag l pax))
|
|
[(scag l pax) (slag l pax)]
|
|
?~ l
|
|
~& %bad-endpoint
|
|
~|(%bad-endpoint !!)
|
|
$(l (dec l))
|
|
::
|
|
:: These are all the github GET endpoints, sorted with
|
|
:: `env LC_ALL=C sort`
|
|
::
|
|
:: end-points include required query parameters
|
|
++ valid-get-endpoint
|
|
$? {$drafts id/@t ~}
|
|
{$drafts ~}
|
|
{$history ~}
|
|
{$labels id/@t ~}
|
|
{$labels ~}
|
|
{$messages id/@t $attachments id/@t ~}
|
|
{$messages id/@t ~}
|
|
{$messages ~}
|
|
{$profile ~}
|
|
{$threads id/@t ~}
|
|
{$threads ~}
|
|
==
|
|
|
|
++ vaild-post-endpoint
|
|
$? {$drafts $send ~}
|
|
{$drafts ~}
|
|
{$messages id/@t $modify ~}
|
|
{$messages id/@t $trash ~}
|
|
{$messages id/@t $untrash ~}
|
|
{$messages $import ~}
|
|
{$messages $send ~}
|
|
{$messages ~}
|
|
{$labels ~}
|
|
{$threads id/@t $trash ~}
|
|
{$threads id/@t $untrash ~}
|
|
{$threads id/@t $modify}
|
|
{$stop ~}
|
|
{$watch ~}
|
|
==
|
|
|
|
++ valid-delete-endpoint
|
|
$? {$drafts id/@t ~}
|
|
{$labels id/@t ~}
|
|
{$messages id/@t ~}
|
|
{$thread id/@t ~}
|
|
==
|
|
++ valid-put-endpoint
|
|
$? {$drafts id/@t ~}
|
|
{$labels id/@t ~}
|
|
==
|
|
++ valid-patch-endpoint
|
|
$? {$labels id/@t ~}
|
|
==
|
|
|
|
--
|
|
|
|
::
|