1 changed files with 87 additions and 0 deletions
@ -0,0 +1,87 @@ |
|||||
|
import requests |
||||
|
from flask import request |
||||
|
|
||||
|
|
||||
|
class DonationAlertsApi: |
||||
|
|
||||
|
def __init__(self, client_id, client_secret, redirect_uri, scope): |
||||
|
symbols = [",", ", ", " ", "%20"] |
||||
|
|
||||
|
for symbol in symbols: |
||||
|
if symbol in scope: |
||||
|
self.scope = scope.replace(symbol, "%20").strip() |
||||
|
else: |
||||
|
self.scope = scope |
||||
|
|
||||
|
self.client_id = client_id |
||||
|
self.client_secret = client_secret |
||||
|
self.redirect_uri = redirect_uri |
||||
|
self.login_url = f"https://www.donationalerts.com/oauth/authorize?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code&scope={self.scope}" |
||||
|
self.token_url = f"https://www.donationalerts.com/oauth/token?grant_type=authorization_code&client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&code=" |
||||
|
|
||||
|
# API LINKS |
||||
|
self.user_api = "https://www.donationalerts.com/api/v1/user/oauth" |
||||
|
self.donations_api = "https://www.donationalerts.com/api/v1/alerts/donations" |
||||
|
self.custom_alerts_api = "https://www.donationalerts.com/api/v1/custom_alert" |
||||
|
|
||||
|
|
||||
|
def login(self): |
||||
|
link = self.login_url |
||||
|
return link |
||||
|
|
||||
|
|
||||
|
def get_code(self): |
||||
|
code = request.args.get("code") |
||||
|
return code |
||||
|
|
||||
|
|
||||
|
def get_access_token(self, code): |
||||
|
payload = { |
||||
|
"client_id": self.client_id, |
||||
|
"client_secret": self.client_secret, |
||||
|
"grant_type": "authorization_code", |
||||
|
"code": code, |
||||
|
"redirect_uri": self.redirect_uri, |
||||
|
"scope": self.scope |
||||
|
} |
||||
|
|
||||
|
access_token = requests.post(url=self.token_url, data=payload).json() |
||||
|
return access_token.get("access_token") |
||||
|
|
||||
|
|
||||
|
def get_donations(self, access_token): |
||||
|
headers = { |
||||
|
"Authorization": f"Bearer {access_token}", |
||||
|
"Content-Type": "application/x-www-form-urlencoded" |
||||
|
} |
||||
|
donate_object = requests.get(url=self.donations_api, headers=headers).json() |
||||
|
|
||||
|
return donate_object # HERE PROBLEMS!!! |
||||
|
|
||||
|
|
||||
|
def get_user(self, access_token): |
||||
|
headers = { |
||||
|
"Authorization": f"Bearer {access_token}", |
||||
|
"Content-Type": "application/x-www-form-urlencoded" |
||||
|
} |
||||
|
user_object = requests.get(url=self.user_api, headers=headers).json() |
||||
|
|
||||
|
return user_object |
||||
|
|
||||
|
|
||||
|
def send_custom_alert(self, access_token, external_id, headline, message, image_url=None, sound_url=None, is_shown=0): |
||||
|
headers = { |
||||
|
"Authorization": f"Bearer {access_token}", |
||||
|
"Content-Type": "application/x-www-form-urlencoded" |
||||
|
} |
||||
|
data = { |
||||
|
"external_id": external_id, |
||||
|
"header": headline, |
||||
|
"message": message, |
||||
|
"is_shown": is_shown, |
||||
|
"image_url": image_url, |
||||
|
"sound_url": sound_url |
||||
|
} |
||||
|
custom_alert_object = requests.post(url=self.custom_alerts_api, data=data, headers=headers).json() |
||||
|
|
||||
|
return custom_alert_object |
Loading…
Reference in new issue