this is the centralised backend for all of rotur.
Environment Variables (loaded from root ../.env with optional local overrides):
USERS_FILE_PATH             - where in the file system the users.json is
LOCAL_POSTS_PATH            - where to store claw posts, eg: posts.json
FOLLOWERS_FILE_PATH         - where to store the follower data for claw, eg: ./clawusers.json
ITEMS_FILE_PATH             - where to store item data for rotur, eg: ./items.json
KEYS_FILE_PATH              - where to store key data for rotur, eg: ./keys.json
EVENTS_HISTORY_PATH         - where to put account events, eg: ./events_history.json
DAILY_CLAIMS_FILE_PATH      - where to store daily claim data, eg: ./rotur_daily.json
SYSTEMS_FILE_PATH           - where in the file system info about rotur systems is, eg: ./systems.json
WEBSOCKET_SERVER_URL        - claw events go here
EVENT_SERVER_URL            - websocket events go here
SUBSCRIPTION_CHECK_INTERVAL - 3600
BANNED_WORDS_URL            - a list of banned words for claw posts and other user data, eg: "http://www.bannedwordlist.com/lists/swearWords.txt"
DISCORD_WEBHOOK_URL         - where to log claw posts to
KEY_OWNERSHIP_CACHE_TTL     - 600
ADMIN_TOKEN                 - a token used for authenticating locally between other rotur apisAll endpoints are served on port 5602 (example: http://localhost:5602). Unless otherwise noted, query parameters are passed via ?param=value. JSON bodies are used for POST/PATCH where described.
- GET /postCreate a post (query:- auth,- content, optional- attachment,- os,- profile_only=1)
- GET /replyReply to a post
- GET /deleteDelete a post
- GET /rateRate (like?) a post
- GET /repostRepost a post
- GET /pin_postPin a post to profile
- GET /unpin_postUnpin a post
- GET /search_postsSearch posts (query-based)
- GET /top_postsGet top liked posts within time/limit
- GET /feedPublic feed (params:- limit,- offset)
- GET /following_feedFeed of followed users
- GET /followFollow a user
- GET /unfollowUnfollow a user
- GET /followersList followers of a user
- GET /followingList following for a user
- GET /notificationsGet notifications for authenticated user
- GET /profileGet profile by username
- GET /get_userGet user by auth key or username (legacy/new alias:- /get_user_new)
- POST /create_userRegister a new user (JSON body)
- PATCH /usersUpdate a user key/value (JSON body:- auth,- key,- value)
- DELETE /users/:usernameDelete (admin?) user by username
- DELETE /usersDelete user using auth key (JSON?)
- POST /me/updateUpdate current user (alias of update)
- DELETE /me/deleteDelete current user (key-based)
- GET /meGet current user (auth)
- POST /me/refresh_tokenRefresh an auth token
- POST /me/transferTransfer credits
- POST /me/gambleGamble credits
- GET /search_usersSearch users
- GET /systemsList systems
- GET /reload_systemsReload system definitions (admin)
- GET /generate_validatorGenerate validator token
- GET /validateValidate a token
- GET /statusGeneral status (startup uptime etc.)
- GET /status/updateSet status (auth)
- GET /status/clearClear status
- GET /status/getGet status for user
- GET /stats/economyEconomy stats
- GET /stats/usersUser stats
- GET /stats/richRich list
- GET /stats/auraAura stats
- GET /stats/systemsSystem stats
- GET /stats/followersFollowers stats
- GET /supportersSupporters list
- GET /claim_dailyClaim daily reward
- GET /items/transfer/:nameTransfer ownership
- GET /items/buy/:nameBuy item
- GET /items/stop_selling/:nameStop selling
- GET /items/set_price/:nameSet price (seller/admin?)
- GET /items/createCreate item
- GET /items/get/:nameGet item info
- GET /items/delete/:nameDelete item
- GET /items/list/:usernameList a user's items
- GET /items/update/:nameUpdate item meta
- GET /items/sell/:namePut item for sale
- GET /items/sellingList currently selling items
- GET /items/admin_add/:idAdmin add user to item
- GET /keys/createCreate key
- GET /keys/mineList my keys
- GET /keys/check/:usernameCheck if user owns key
- GET /keys/revoke/:idRevoke key
- GET /keys/delete/:idDelete key
- GET /keys/update/:idUpdate key metadata
- GET /keys/name/:idSet key name
- GET /keys/get/:idGet key info
- GET /keys/admin_add/:idAdmin add user to key
- GET /keys/admin_remove/:idAdmin remove user from key
- GET /keys/buy/:idBuy key
- GET /keys/cancel/:idCancel key purchase
- GET /keys/debug_subscriptionsDebug subscription status
- POST /friends/request/:usernameSend friend request
- POST /friends/accept/:usernameAccept request
- POST /friends/reject/:usernameReject request
- POST /friends/remove/:usernameRemove friend
- GET /friendsList friends & pending
- POST /marriage/propose/:usernamePropose marriage
- POST /marriage/acceptAccept marriage proposal
- POST /marriage/rejectReject marriage proposal
- POST /marriage/cancelCancel marriage proposal
- POST /marriage/divorceDivorce spouse
- GET /marriage/statusGet marriage status
- GET /link/codeRequest a link code
- POST /link/codeLink code to account
- GET /link/statusGet link status
- GET /link/userGet linked user info
- POST /devfund/escrow_transferStart escrow transfer
- POST /devfund/escrow_releaseRelease escrow
- GET /admin/get_user_byGet user by field
- POST /admin/update_userAdmin update user (typed operations)
- POST /admin/delete_userAdmin delete user
- POST /accept_tosAccept terms of service