:: |% :: 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 $~} == -- ::