CCash/docs/connected_services/how_to/endpoints.md
2023-01-12 01:05:23 -08:00

15 KiB

API endpoints

PREVIOUS PAGE | NEXT PAGE

KEY

Jresp - Json Response, json must be accepted in the Accept header, be that via application/json or */*, failing to do so results in error 406

Jreq - Json Request, requires application/json as content-type, failing to do so results in error 406

U - User, requires basic auth in the header Authorization. This credential must be a valid user, failing to do so results in error 401

A - Admin, same as U but in addition requires username supplied be equal to the admin account username

⚠ - Deprecated endpoint

- Defunct endpoint

all error responses have JSON string along with them to describe

Usage endpoints

name last change purpose json input path HTTP Method correct status return type return value Jresp Jreq A U
GetBal v2.3.0 retrieving the balance of a given user, {name} N/A api/v1/user/balance?name={name} GET 200 uint32 the user's balance ✔️
GetLogs v2.3.0 retrieves the logs of a given user, length varies by server configuration (oldest to newest transactions) N/A ⚠ api/v1/user/log GET 200 array of objects [{"to":string, "from":string, "amount":uint32, "time":int64}] ✔️ ✔️
GetLogsV2 v2.6.1 retrieves the logs of a given user, length varies by server configuration (newest to oldest transactions) N/A api/v2/user/log GET 200 array of objects [{"counterparty":string, "amount":int64, "time":int64}] ✔️ ✔️
GetLogsRange v2.6.1 retrieves the logs of a given user, where {start} is the 0-indexed first log and {length} is the number of logs after that index. N/A api/v1/user/log_range GET 200 array of objects [{"counterparty":string, "amount":int64, "time":int64}] ✔️ ✔️
SendFunds v2.3.0 sends funds from the authenticated user to the user "name" given in the json {"name":string, "amount":uint32} api/v1/user/transfer POST 200 uint32 the user's balance after the transaction ✔️ ✔️ ✔️
ChangePassword v2.3.0 changes the password of the Authenticated user {"pass":string} api/v1/user/change_password PATCH 204 N/A N/A ✔️ ✔️ ✔️
VerifyPassword v2.3.0 verifies the credentials, used for connected services for ease of use N/A api/v1/user/verify_password POST 204 N/A N/A ✔️ ✔️

Usage enpoint errors

name 400 401 404 406
GetBal ✔️ ✔️
GetLogs ✔️ ✔️ ✔️
GetLogsV2 ✔️ ✔️ ✔️
GetLogsRange ✔️ ✔️ ✔️ ✔️
SendFunds ✔️ ✔️ ✔️ ✔️
VerifyPassword ✔️ ✔️
ChangePassword ✔️ ✔️ ✔️

Meta Usage endpoints

name last change purpose json input path HTTP Method correct status return type return value Jresp Jreq A U
AdminGetLogs v2.6.1 retreives the logs of a given user {name}, length varies by server configuration N/A api/v1/admin/user/log?name={name} GET 200 array of objects [{"counterparty":string, "amount":int64, "time":int64}] ✔️ ✔️
AdminChangePassword v2.3.0 changes the password of a given user "name" {"name":string,"pass":string} api/v1/admin/user/change_password PATCH 204 N/A N/A ✔️ ✔️ ✔️
AdminVerifyAccount v2.3.0 checks wether a user is the admin N/A api/v1/admin/verify_account POST 204 N/A N/A ✔️ ✔️
SetBal v2.3.0 sets the balance of a given user "name" {"name":string,"amount":uint32} api/v1/admin/set_balance PATCH 204 N/A N/A ✔️ ✔️ ✔️
ImpactBal v2.3.0 modifies the user "name"'s balance by "amount" if positive itll add, if negative itll subtract {"name":string,"amount":int64} api/v1/admin/impact_balance POST 200 uint32 new balance after modification ✔️ ✔️ ✔️

Meta Usage endpoint errors

name 400 401 404 406
AdminGetLogs ✔️ ✔️ ✔️
AdminChangePassword ✔️ ✔️ ✔️ ✔️
AdminVerifyAccount ✔️ ✔️
SetBal ✔️ ✔️ ✔️ ✔️
ImpactBal ✔️ ✔️ ✔️ ✔️

Sytem Usage endpoints

name last change purpose json input path HTTP Method correct status return type return value Jresp Jreq A U
Help v2.3.0 redirects to GitHub projects Docs N/A api/help GET 301 N/A N/A
Close v2.3.0 saves & closes the CCash webserver N/A api/v1/admin/shutdown POST 204 N/A N/A ✔️ ✔️
Contains v2.3.0 checks wether a given user {name} exists N/A api/v1/user/exists?name={name} GET 204 N/A N/A ✔️
PruneUsers v2.3.0 deletes users with most recent transactions older then "time" (if logs are enabled) and have less money then "amount" {"time":int64,"amount":uint32} or just {"amount":uint32} api/v1/admin/prune_users POST 200 uint64 number of users deleted ✔️ ✔️ ✔️
ApiProperties v2.5.1 properties of the given instance N/A api/properties GET 200 json object {"max_log":uint64, "add_user_open":boolean, "return_on_del":string} ✔️

System Usage endpoin errors

name 401 404 406
Help
Close ✔️ ✔️
Contains ✔️ ✔️ ✔️
PruneUsers ✔️ ✔️
ApiProperties

Username Requirements

Valid

  • letters
  • numbers
  • _
  • Length must be atleast 3 and at most 16 characters.

User Management endpoints

name last change purpose json input path HTTP Method correct status return type return value Jresp Jreq A U
AddUser v2.3.0 adding a user with a balance of 0 {"name":string,"pass":string} api/v1/user/register POST 204 N/A N/A ✔️ ✔️
AdminAddUser v2.3.0 adding a user with an arbitrary balance {"name":string,"amount":uint32,"pass":string} api/v1/admin/user/register POST 204 N/A N/A ✔️ ✔️ ✔️
DelSelf v2.3.0 deletes a user N/A api/v1/user/delete DELETE 204 N/A N/A ✔️ ✔️
AdminDelUser v2.3.0 deletes a given user "name" {"name":string} api/v1/admin/user/delete DELETE 204 N/A N/A ✔️ ✔️ ✔️

User Management endpoint errors

name 400 401 404 406 409
AddUser ✔️ ✔️ ✔️ ✔️
AdminAddUser ✔️ ✔️ ✔️ ✔️
DelSelf ✔️ ✔️
AdminDelUser ✔️ ✔️ ✔️ ✔️