Skip to content

Commit 176c30d

Browse files
committed
0.0.8 - add simple user auth
1 parent 56ca4d0 commit 176c30d

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ __pycache__/
88

99
# Distribution / packaging
1010
.keys
11+
.moretests
1112
.Python
1213
build/
1314
develop-eggs/

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = quickbase-json-api-client
3-
version = 0.0.7
3+
version = 0.0.8
44
author = Robert Carroll
55
author_email = [email protected]
66
description = Python wrapper for quickbase JSON API.

src/quickbase_json/client.py

+21
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from xml.etree import ElementTree
2+
13
import requests
24

35
from quickbase_json.qb_response import QBResponse
@@ -125,6 +127,25 @@ def get_fields(self, table_id: str, **kwargs):
125127
params = {'tableId': f'{table_id}'}
126128
return requests.get('https://api.quickbase.com/v1/fields', params=params, headers=headers).json()
127129

130+
"""
131+
User Authentication
132+
"""
133+
def auth_user(self, username, pw, hours):
134+
url = f'https://{self.realm}.quickbase.com/db/main?a=API_Authenticate&username={username}&password={pw}&hours={hours}'
135+
r = requests.post(url=url)
136+
137+
tree = ElementTree.fromstring(r.content)
138+
139+
xml_dict = {}
140+
for child in tree:
141+
xml_dict.update({child.tag: child.text})
142+
143+
error_code = int(xml_dict.get('errcode'))
144+
if error_code == 0:
145+
return xml_dict.get('ticket')
146+
else:
147+
raise ValueError(f'{xml_dict.get("errcode")}: {xml_dict.get("errtext")}')
148+
128149
"""
129150
Misc.
130151
"""

0 commit comments

Comments
 (0)