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.state = None
|
||||||
self.token = None
|
self.token = None
|
||||||
|
|
||||||
def getAuthURL(self, redirectUrl):
|
def getAuthURL(self, redirectUri):
|
||||||
self.redirectUrl = redirectUrl
|
self.redirectUri = redirectUri
|
||||||
oauth = OAuth2Session(self.clientId, redirect_uri=self.redirectUri, scope='openid')
|
oauth = OAuth2Session(self.clientId, redirect_uri=self.redirectUri, scope='openid')
|
||||||
|
authorizationUrl, self.state = oauth.authorization_url(self.authUrl)
|
||||||
return authorizationUrl
|
return authorizationUrl
|
||||||
|
|
||||||
def retrieveToken(self, response, state=None, redirectUri=None):
|
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