Skip to content

Commit 73f2bd5

Browse files
author
AndyEveritt
committed
standardise api inputs and outputs
1 parent 9f0b1c9 commit 73f2bd5

3 files changed

Lines changed: 33 additions & 31 deletions

File tree

DuetWebAPI/api/base.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,29 @@ class DuetAPI:
88
def __init__(self, base_url) -> None:
99
self._base_url = base_url
1010

11-
def get_model(self):
11+
def get_model(self, key: str = None) -> Dict:
1212
raise NotImplementedError
1313

14-
def post_code(self, code):
14+
def post_code(self, code: str) -> Dict:
1515
raise NotImplementedError
1616

17-
def get_file(self, filename, path):
17+
def get_file(self, filename: str, directory: str = 'gcodes') -> str:
1818
raise NotImplementedError
1919

20-
def put_file(self, filename, path):
20+
def put_file(self, file: str, directory: str = 'gcodes') -> Dict:
2121
raise NotImplementedError
2222

23-
def get_fileinfo(self, filename):
23+
def get_fileinfo(self, filename: str = None, directory: str = 'gcodes') -> Dict:
2424
raise NotImplementedError
2525

26-
def delete_file(self, filename):
26+
def delete_file(self, filename: str, directory: str = 'gcodes') -> Dict:
2727
raise NotImplementedError
2828

29-
def move_file(self, from_path, to_path, force=False):
29+
def move_file(self, from_path: str, to_path: str, force: bool = False) -> Dict:
3030
raise NotImplementedError
3131

32-
def get_directory(self, directory):
32+
def get_directory(self, directory: str) -> List[Dict]:
3333
raise NotImplementedError
3434

35-
def put_directory(self, directory):
36-
raise NotImplementedError
35+
def put_directory(self, directory: str) -> Dict:
36+
raise NotImplementedError

DuetWebAPI/api/dsf_api.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88

99

1010
class DSFAPI(DuetAPI):
11-
def get_model(self) -> Dict:
11+
def get_model(self, **_ignored) -> Dict:
1212
url = f'{self._base_url}/machine/status'
1313
r = requests.get(url)
1414
j = r.json()
1515
return j
1616

17-
def post_code(self, code) -> str:
17+
def post_code(self, code: str) -> Dict:
1818
url = f'{self._base_url}/machine/code'
1919
r = requests.post(url, data=code)
20-
return r.text
20+
return {'response': r.text}
2121

2222
def get_file(self, filename: str, directory: str = 'gcodes') -> str:
2323
"""
@@ -32,7 +32,7 @@ def get_file(self, filename: str, directory: str = 'gcodes') -> str:
3232
raise ValueError
3333
return r.text
3434

35-
def put_file(self, file: str, directory: str = 'gcodes'):
35+
def put_file(self, file: str, directory: str = 'gcodes') -> Dict:
3636
"""
3737
file: the path to the file you want to upload from your PC
3838
directory: the folder that the file is in, options are ['gcodes', 'macros', 'sys']
@@ -46,39 +46,39 @@ def put_file(self, file: str, directory: str = 'gcodes'):
4646
r = requests.put(url, data=f, headers={'Content-Type': 'application/octet-stream'})
4747
if not r.ok:
4848
raise ValueError
49-
return r.ok
49+
return {'err': 0}
5050

51-
def get_fileinfo(self, filename: str, directory: str = 'gcodes'):
51+
def get_fileinfo(self, filename: str = None, directory: str = 'gcodes') -> Dict:
5252
url = f'{self._base_url}/machine/fileinfo/{directory}/{filename}'
5353
r = requests.get(url)
5454
if not r.ok:
5555
raise ValueError
5656
return r.json()
5757

58-
def delete_file(self, filename: str, directory: str = 'gcodes'):
58+
def delete_file(self, filename: str, directory: str = 'gcodes') -> Dict:
5959
url = f'{self._base_url}/machine/file/{directory}/{filename}'
6060
r = requests.delete(url)
6161
if not r.ok:
6262
raise ValueError
63-
return r.text
63+
return {'err': 0}
6464

65-
def move_file(self, from_path, to_path, force=False):
65+
def move_file(self, from_path: str, to_path: str, force: bool = False) -> Dict:
6666
url = f'{self._base_url}/machine/file/move'
6767
r = requests.post(url, {'from': f'{from_path}', 'to': f'{to_path}', 'force': force})
6868
if not r.ok:
6969
raise ValueError
70-
return r.text
70+
return {'err': 0}
7171

72-
def get_directory(self, directory) -> List[Dict]:
72+
def get_directory(self, directory: str) -> List[Dict]:
7373
url = f'{self._base_url}/machine/directory/{directory}'
7474
r = requests.get(url)
7575
if not r.ok:
7676
raise ValueError
7777
return r.json()
7878

79-
def put_directory(self, directory):
79+
def put_directory(self, directory: str) -> Dict:
8080
url = f'{self._base_url}/machine/directory/{directory}'
8181
r = requests.put(url)
8282
if not r.ok:
8383
raise ValueError
84-
return r.text
84+
return {'err': 0}

DuetWebAPI/api/dwc_api.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,20 @@
88

99

1010
class DWCAPI(DuetAPI):
11-
def get_model(self, key=None) -> Dict:
11+
def get_model(self, key: str = None) -> Dict:
1212
url = f'{self._base_url}/rr_model'
1313
r = requests.get(url, {'flags': 'd99vn', 'key': key})
1414
if not r.ok:
1515
raise ValueError
1616
j = r.json()
1717
return j['result']
1818

19-
def post_code(self, code) -> Dict:
19+
def post_code(self, code: str) -> Dict:
2020
url = f'{self._base_url}/rr_gcode'
2121
r = requests.get(url, {'gcode': code})
2222
if not r.ok:
2323
raise ValueError
24-
return r.json()
24+
return {'response': ''}
2525

2626
def get_file(self, filename: str, directory: str = 'gcodes') -> str:
2727
"""
@@ -36,7 +36,7 @@ def get_file(self, filename: str, directory: str = 'gcodes') -> str:
3636
raise ValueError
3737
return r.text
3838

39-
def put_file(self, file: str, directory: str = 'gcodes'):
39+
def put_file(self, file: str, directory: str = 'gcodes') -> Dict:
4040
file = os.path.abspath(file).replace('\\', '/')
4141
filename = file.split('/')[-1]
4242
url = f'{self._base_url}/rr_upload?name=/{directory}/{filename}'
@@ -46,7 +46,7 @@ def put_file(self, file: str, directory: str = 'gcodes'):
4646
raise ValueError
4747
return r.json()
4848

49-
def get_fileinfo(self, filename: str = None, directory: str = 'gcodes'):
49+
def get_fileinfo(self, filename: str = None, directory: str = 'gcodes') -> Dict:
5050
url = f'{self._base_url}/rr_fileinfo'
5151
if filename:
5252
r = requests.get(url, {'name': f'/{directory}/{filename}'})
@@ -56,28 +56,30 @@ def get_fileinfo(self, filename: str = None, directory: str = 'gcodes'):
5656
raise ValueError
5757
return r.json()
5858

59-
def delete_file(self, filename: str, directory: str = 'gcodes'):
59+
def delete_file(self, filename: str, directory: str = 'gcodes') -> Dict:
6060
url = f'{self._base_url}/rr_delete'
6161
r = requests.get(url, {'name': f'/{directory}/{filename}'})
6262
if not r.ok:
6363
raise ValueError
6464
return r.json()
6565

6666
def move_file(self, from_path, to_path, **_ignored):
67+
# BUG this doesn't work currently
68+
raise NotImplementedError
6769
url = f'{self._base_url}/rr_move'
6870
r = requests.get(url, {'old': f'{from_path}', 'new': f'{to_path}'})
6971
if not r.ok:
7072
raise ValueError
7173
return r.json()
7274

73-
def get_directory(self, directory) -> List[Dict]:
75+
def get_directory(self, directory: str) -> List[Dict]:
7476
url = f'{self._base_url}/rr_filelist'
7577
r = requests.get(url, {'dir': f'/{directory}'})
7678
if not r.ok:
7779
raise ValueError
7880
return r.json()['files']
7981

80-
def put_directory(self, directory):
82+
def put_directory(self, directory: str) -> Dict:
8183
url = f'{self._base_url}/rr_mkdir'
8284
r = requests.get(url, {'dir': f'/{directory}'})
8385
if not r.ok:

0 commit comments

Comments
 (0)