Add API and get_token for testing API
This commit is contained in:
parent
eb2968b777
commit
d17f28ccf2
69
api.py
Normal file
69
api.py
Normal file
|
@ -0,0 +1,69 @@
|
|||
import requests
|
||||
from requests_oauthlib import OAuth2Session
|
||||
import json
|
||||
import sys
|
||||
from config import *
|
||||
from cachehandler import CacheHandler
|
||||
from authhandler import AuthHandler
|
||||
|
||||
class OpenbravoToBanqupAPI:
|
||||
|
||||
def __init__(self, clientId, clientSecret, demo=False):
|
||||
self.clientId = clientId
|
||||
self.clientSecret = clientSecret
|
||||
self.demo = demo
|
||||
self.headers = {
|
||||
'Accept' : 'application/json',
|
||||
'Content-Type' : 'application/json',
|
||||
}
|
||||
self.baseUrl = bq_base_url
|
||||
self.cacheHandler = CacheHandler()
|
||||
self.authHandler = AuthHandler(self, self.clientId, self.clientSecret)
|
||||
|
||||
def doRequest(self, method, url, data=None, headers=None, files=None):
|
||||
if headers:
|
||||
mergedHeaders = self.headers
|
||||
mergedHeaders.update(headers)
|
||||
headers = mergedHeaders
|
||||
else: headers = self.headers
|
||||
|
||||
reqUrl = '{base}/{url}'.format(base=self.baseUrl, url=url)
|
||||
|
||||
if method == 'GET':
|
||||
response = requests.get(reqUrl, params=data, headers=headers)
|
||||
elif method == 'POST':
|
||||
if files: response = requests.post(reqUrl, data=json.dumps(data), files=files, headers=headers)
|
||||
else: response = requests.post(reqUrl, data=json.dumps(data), headers=headers)
|
||||
elif method == 'PUT':
|
||||
response = requests.put(reqUrl, data=json.dumps(data), headers=headers)
|
||||
elif method == 'DELETE':
|
||||
response = requests.delete(reqUrl, params=json.dumps(data), headers=headers)
|
||||
return response
|
||||
|
||||
def request(self, method, url, data=None, headers=None, files=None):
|
||||
|
||||
self.authHandler.checkHeaderTokens()
|
||||
response = self.doRequest(method, url, data, headers, files)
|
||||
|
||||
if 'json' in response.headers['Content-Type']:
|
||||
respContent = response.json()
|
||||
elif 'pdf' in response.headers['Content-Type']:
|
||||
respContent = response.content
|
||||
|
||||
return response.status_code, response.headers, respContent
|
||||
|
||||
def get(self, url, data=None, headers=None):
|
||||
status, headers, response = self.request('GET', url, data, headers)
|
||||
return status, headers, response
|
||||
|
||||
def post(self, url, data=None, headers=None, files=None):
|
||||
status, headers, response = self.request('POST', url, data, headers, files)
|
||||
return status, headers, response
|
||||
|
||||
def put(self, url, data=None, headers=None):
|
||||
status, headers, response = self.request('PUT', url, data, headers)
|
||||
return status, headers, response
|
||||
|
||||
def delete(self, url, data=None, headers=None):
|
||||
status, headers, response = self.request('DELETE', url, data, headers)
|
||||
return status, headers, response
|
|
@ -16,9 +16,10 @@ class AuthHandler:
|
|||
self.state = None
|
||||
self.token = None
|
||||
|
||||
def getAuthURL(self, redirectUrl):
|
||||
self.redirectUrl = redirectUrl
|
||||
def getAuthURL(self, redirectUri):
|
||||
self.redirectUri = redirectUri
|
||||
oauth = OAuth2Session(self.clientId, redirect_uri=self.redirectUri, scope='openid')
|
||||
authorizationUrl, self.state = oauth.authorization_url(self.authUrl)
|
||||
return authorizationUrl
|
||||
|
||||
def retrieveToken(self, response, state=None, redirectUri=None):
|
||||
|
|
17
get_token.py
Normal file
17
get_token.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
import requests
|
||||
from requests_oauthlib import OAuth2Session
|
||||
import json
|
||||
import sys
|
||||
import webbrowser
|
||||
from config import *
|
||||
from cachehandler import CacheHandler
|
||||
from authhandler import AuthHandler
|
||||
from api import OpenbravoToBanqupAPI
|
||||
|
||||
api = OpenbravoToBanqupAPI(bq_client_id,bq_client_secret)
|
||||
authUrl = api.authHandler.getAuthURL(bq_redirect_uri)
|
||||
print(authUrl)
|
||||
webbrowser.open(authUrl)
|
||||
response = input('paste response: ')
|
||||
token = api.authHandler.retrieveToken(response, redirectUri=bq_redirect_uri)
|
||||
print(token)
|
Loading…
Reference in a new issue