still doesn't really work for anything other than get requests
This commit is contained in:
parent
e44b82c3a9
commit
96a8838d1d
@ -3,14 +3,12 @@ from lunduke.client import DiscourseClient
|
||||
|
||||
def main():
|
||||
client = DiscourseClient()
|
||||
categories = client.get('/categories.json').json()['category_list']
|
||||
print(categories)
|
||||
|
||||
# https://docs.discourse.org/#tag/Topics/operation/createTopicPostPM
|
||||
# TODO: FAILS. 403. Forbidden for url: https://forum.lunduke.com/posts.json
|
||||
try:
|
||||
draft_data = {
|
||||
"title": "Testing 1 2 3",
|
||||
"raw": "This is only a test",
|
||||
"category": 15
|
||||
}
|
||||
|
||||
response = client.post('/posts.json', data=draft_data)
|
||||
|
20
examples/get_all_users.py
Normal file
20
examples/get_all_users.py
Normal file
@ -0,0 +1,20 @@
|
||||
from lunduke.client import DiscourseClient
|
||||
|
||||
|
||||
def main():
|
||||
client = DiscourseClient()
|
||||
param_data = {
|
||||
"period": "all",
|
||||
"order": "likes_received"
|
||||
}
|
||||
try:
|
||||
response = client.get('/directory_items.json', params=param_data)
|
||||
print(response.status_code)
|
||||
print(response.json())
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
18
examples/get_categories.py
Normal file
18
examples/get_categories.py
Normal file
@ -0,0 +1,18 @@
|
||||
from lunduke.client import DiscourseClient
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
client = DiscourseClient()
|
||||
try:
|
||||
response = client.get('/categories.json')
|
||||
categories = response.json()['category_list']['categories']
|
||||
for cat_dict in categories:
|
||||
for key,val in cat_dict.items():
|
||||
print(key, ": ", val)
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
18
examples/get_pms.py
Normal file
18
examples/get_pms.py
Normal file
@ -0,0 +1,18 @@
|
||||
from config.configuration import Config
|
||||
from lunduke.client import DiscourseClient
|
||||
|
||||
|
||||
def main():
|
||||
cfg = Config()
|
||||
client = DiscourseClient()
|
||||
try:
|
||||
response = client.get(f"/topics/private-messages/{cfg.username}.json")
|
||||
print(response.status_code)
|
||||
print(response.json())
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
18
examples/get_user.py
Normal file
18
examples/get_user.py
Normal file
@ -0,0 +1,18 @@
|
||||
from config.configuration import Config
|
||||
from lunduke.client import DiscourseClient
|
||||
|
||||
|
||||
def main():
|
||||
user = Config().username
|
||||
client = DiscourseClient()
|
||||
try:
|
||||
response = client.get(f"/u/{user}.json")
|
||||
print(response.status_code)
|
||||
print(response.json())
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
23
examples/update_user.py
Normal file
23
examples/update_user.py
Normal file
@ -0,0 +1,23 @@
|
||||
from config.configuration import Config
|
||||
from lunduke.client import DiscourseClient
|
||||
|
||||
|
||||
def main():
|
||||
user = Config().username
|
||||
client = DiscourseClient()
|
||||
# https://docs.discourse.org/#tag/Users/operation/updateUser
|
||||
# TODO: FAILS: 404
|
||||
put_data = {
|
||||
"location": "cyberspace",
|
||||
"external_ids": {}
|
||||
}
|
||||
try:
|
||||
response = client.put(f"/u/{user}.json", data=put_data)
|
||||
print(response.status_code)
|
||||
print(response.json())
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@ -67,3 +67,20 @@ class DiscourseClient:
|
||||
response = self.session.post(url, headers=headers, json=data)
|
||||
response.raise_for_status() # Raise exception for error status codes
|
||||
return response
|
||||
|
||||
def put(self, endpoint, data=None) -> Response:
|
||||
"""
|
||||
Make a PUT request to the API.
|
||||
|
||||
Args:
|
||||
endpoint: API endpoint (e.g., '/posts.json')
|
||||
data: Data to be sent in the request body
|
||||
|
||||
Returns:
|
||||
Response data as JSON
|
||||
"""
|
||||
url = f"{self.config.get_base_url()}{endpoint}"
|
||||
headers = self.auth.get_headers()
|
||||
response = self.session.post(url, headers=headers, json=data)
|
||||
response.raise_for_status() # Raise exception for error status codes
|
||||
return response
|
||||
|
Loading…
Reference in New Issue
Block a user