forked from PrintNode/PrintNode-Python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgateway.py
More file actions
105 lines (78 loc) · 2.7 KB
/
Copy pathgateway.py
File metadata and controls
105 lines (78 loc) · 2.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import json
import requests
from .auth import Auth, Unauthorized
from .model import ModelFactory
from .accounts import Accounts
from .computers import Computers
from .util import camel_to_underscore
class Gateway:
URL = 'https://api.printnode.com'
def __init__(self, **kwargs):
url = kwargs.pop('url', self.URL)
self._auth = Auth(url=url, **kwargs)
self._factory = ModelFactory()
self._accounts = Accounts(self._auth, self._factory)
self._computers = Computers(self._auth, self._factory)
@property
def account(self):
server_account = self._auth.get('whoami')
return self._factory.create_account(server_account)
@property
def computers(self):
return self._computers.get_computers
@property
def printers(self):
return self._computers.get_printers
@property
def printjobs(self):
return self._computers.get_printjobs
@property
def scales(self):
return self._computers.get_scales
@property
def tag(self):
return self._accounts.get_tag
@property
def api_key(self):
return self._accounts.get_api_key
@property
def clientkey(self):
return self._accounts.get_clientkey
@property
def clients(self):
return self._accounts.get_clients
@property
def states(self):
return self._computers.get_states
def PrintJob(self, *args, **kwargs):
printjob_id = self._computers.submit_printjob(*args, **kwargs)
printjob = self.printjobs(printjob=printjob_id)
return printjob
def TestDataGenerate(self):
self._auth.get('test/data/generate')
def TestDataDelete(self):
self._auth.delete('test/data/generate')
def ModifyTag(self, tagname, tagvalue):
tag = self._accounts.modify_tag(tagname, tagvalue)
return tag
def DeleteTag(self, tagname):
tag = self._accounts.delete_tag(tagname)
return tag
def CreateAccount(self, **kwargs):
acc_post = self._accounts.create_account(**kwargs)
return acc_post
def ModifyAccount(self, **kwargs):
acc_id = self._accounts.modify_account(**kwargs)
return self._factory.create_account(acc_id)
def DeleteAccount(self, **kwargs):
boolean = self._accounts.delete_account(**kwargs)
return boolean
def DeleteApiKey(self, api_key):
key = self._accounts.delete_api_key(api_key)
return key
def CreateApiKey(self, api_key):
key = self._accounts.create_api_key(api_key)
return key
def ModifyClientDownloads(self, client_id, enabled):
clients = self._accounts.modify_client_downloads(client_id, enabled)
return clients