Files

45 lines
1.3 KiB
Python

import requests
from oauthlib.oauth2 import BackendApplicationClient
from requests_oauthlib import OAuth2Session, OAuth2
import jsonapi_requests
from . orm.my_meta import MyMeta
# constants:
root_url = 'https://farmos.wagframe.duckdns.org/'
api_root = root_url + 'api/'
token_url = root_url + 'oauth/token/'
client_id = 'neofarm'
client_secret = 'Wk&%g#d8lYFUDrU7k7k%5ZS$V@hHauBq'
fetch_retries = 10;
def init_api():
client = BackendApplicationClient(client_id=client_id)
oauth_session = OAuth2Session(client=client)
for i in range(fetch_retries):
try:
token = oauth_session.fetch_token(
token_url = token_url,
client_id = client_id,
client_secret = client_secret
)
break
except:
print("Fehler bei Verbindung mit Server (wahrscheinlich DuckDns) probiere erneut...")
oauth = OAuth2(client_id=client_id, client=client, token=token)
api = jsonapi_requests.orm.OrmApi.config({
'API_ROOT': api_root,
'AUTH': oauth,
'TIMEOUT': 1,
})
jsonapi_requests.configuration.default = api
return api
api = init_api()
MyMeta.set_api(api)
# orm stuff classes imported here to allow inheritance from MyMeta
import neofarm.orm.log as Log
import neofarm.orm.asset as Asset
import neofarm.orm.quantity as Quantity
import neofarm.orm.taxonomy as Taxonomy