- posts.getpublic -> post.listpublic (correct job name) - listremove -> listremoved (correct job name)
3.4 KiB
Basic usage (without an .env)
Setup
Here's a very basic example of setting up:
import trustcafeapiwrapper
# Setup the API Client
API = trustcafeapiwrapper.APIClient(
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
env="alpha" # alpha | production.
debug=False
)
or with .env
import trustcafeapiwrapper, os
from dotenv import load_dotenv
load_dotenv()
API = APIClient(
client_id=os.getenv("client_id"),
client_secret=os.getenv("client_secret"),
env="alpha", # alpha | production.
debug=False,
)
Handle token (easy way)
API.handle_token()
Handling the token yourself
def getMyToken():
# get the token from your personal store
# initially this will be None
return token_data
def saveMyToken():
# save your token to your personal store
return True
# Use the old token or None if we haven't logged in ever from here
API.set_token(getMyToken())
# Get a new one if we don't have one or if the existing one is expired
if not API.is_token_valid():
saveMyToken(API.sign_in())
Use a wrapper
Wrappers make it as simple as possible to perform an action.
A wrapper will come with a job and a payload ready to be passed to the wrapped function.
eg. Use the create_post wrapper
from trustcafeapiwrapper.wrappers.post.create_post import create_post
API.wrapped(create_post(
"This is a test post created via the create_post wrapper function.",
))
NOTE: There are not as many wrappers as jobs because fetching is simpler. More will be added though to make it consistent.
Make a request via job
Jobs make the requests to the API. They have the endpoint and path setup already, we just pass the payload. If you want to avoid making your own payload, use a wrapper.
Use the job for getting public posts.
Now you don't need to worry about which API
postlist = API.run_job('post.listpublic')
print(postlist)
'''
{
"Items": [
{
...
'''
NOTE: There are aren't the complete set yet created here.
Custom Request
There should hopefully be a job or a wrapper that exists for what you need but if not, then this is how you make a request using the core mechanism.
Use the make_request function to make a request from the content API to get posts in the music branch.
postlist = API.make_request("GET", "content", f"post/ref-subwiki/music")
print(postlist)
'''
{
"Items": [
{
...
'''
Jobs
block
branch
get
listbyname
change
comment
create
listbypostid
feed
mute
notifcation
listnotifications
API.run_job('notification.listnotifications')
markallasread
API.run_job('notification.markallasread')
post
create
API.run_job('post.create', {
"postText": "This is a test post created via the API wrapper.",
"parent": {
"pk": "maintrunk#maintrunk",
"sk": "maintrunk#maintrunk"
}
})