Skip to content

Commit 8b0fb67

Browse files
committed
add remaining methods (needs checking)
1 parent d229692 commit 8b0fb67

1 file changed

Lines changed: 50 additions & 15 deletions

File tree

DuetWebAPI/DuetWebAPI.py

Lines changed: 50 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,29 @@ def put_file(self, file: str, duet_filename: str, directory: str = 'gcodes'):
108108
raise ValueError
109109
return r.json()
110110

111-
def get_fileinfo(self, filename):
112-
pass
111+
def get_fileinfo(self, filename: str = None, directory: str = 'gcodes'):
112+
url = f'{self._base_url}/rr_fileinfo'
113+
if filename:
114+
r = requests.get(url, {'name': f'/{directory}/{filename}'})
115+
else:
116+
r = requests.get(url)
117+
if not r.ok:
118+
raise ValueError
119+
return r.json()
113120

114-
def delete_file(self, filename):
115-
pass
121+
def delete_file(self, filename: str, directory: str = 'gcodes'):
122+
url = f'{self._base_url}/rr_delete'
123+
r = requests.get(url, {'name': f'/{directory}/{filename}'})
124+
if not r.ok:
125+
raise ValueError
126+
return r.json()
116127

117-
def move_file(self, from_path, to_path, force=False):
118-
pass
128+
def move_file(self, from_path, to_path, **_ignored):
129+
url = f'{self._base_url}/rr_move'
130+
r = requests.get(url, {'old': f'{from_path}', 'new': f'{to_path}'})
131+
if not r.ok:
132+
raise ValueError
133+
return r.json()
119134

120135
def get_directory(self, directory) -> List[Dict]:
121136
url = f'{self._base_url}/rr_filelist'
@@ -125,7 +140,11 @@ def get_directory(self, directory) -> List[Dict]:
125140
return r.json()['files']
126141

127142
def put_directory(self, directory):
128-
pass
143+
url = f'{self._base_url}/rr_mkdir'
144+
r = requests.get(url, {'dir': f'/{directory}'})
145+
if not r.ok:
146+
raise ValueError
147+
return r.json()
129148

130149

131150
class DSFAPI(DuetAPI):
@@ -140,14 +159,14 @@ def post_code(self, code) -> str:
140159
r = requests.post(url, data=code)
141160
return r.text
142161

143-
def get_file(self, filename, directory):
162+
def get_file(self, filename: str, directory: str = 'gcodes') -> str:
144163
"""
145164
filename: name of the file you want to download including extension
146165
directory: the folder that the file is in, options are ['gcodes', 'macros', 'sys']
147166
148167
returns the file as a string
149168
"""
150-
url = f'{self._base_url}/machine/file/{directory}'
169+
url = f'{self._base_url}/machine/file/{directory}/{filename}'
151170
r = requests.get(url)
152171
if not r.ok:
153172
raise ValueError
@@ -162,14 +181,26 @@ def put_file(self, file: str, duet_filename: str, directory: str = 'gcodes'):
162181
raise ValueError
163182
return r.ok
164183

165-
def get_fileinfo(self, filename):
166-
pass
184+
def get_fileinfo(self, filename: str, directory: str = 'gcodes'):
185+
url = f'{self._base_url}/machine/fileinfo/{directory}/{filename}'
186+
r = requests.get(url)
187+
if not r.ok:
188+
raise ValueError
189+
return r.json()
167190

168-
def delete_file(self, filename):
169-
pass
191+
def delete_file(self, filename: str, directory: str = 'gcodes'):
192+
url = f'{self._base_url}/machine/file/{directory}/{filename}'
193+
r = requests.delete(url)
194+
if not r.ok:
195+
raise ValueError
196+
return r.text
170197

171198
def move_file(self, from_path, to_path, force=False):
172-
pass
199+
url = f'{self._base_url}/machine/file/move'
200+
r = requests.post(url, {'from': f'{from_path}', 'to': f'{to_path}', 'force': force})
201+
if not r.ok:
202+
raise ValueError
203+
return r.text
173204

174205
def get_directory(self, directory) -> List[Dict]:
175206
url = f'{self._base_url}/machine/directory/{directory}'
@@ -179,7 +210,11 @@ def get_directory(self, directory) -> List[Dict]:
179210
return r.json()
180211

181212
def put_directory(self, directory):
182-
pass
213+
url = f'{self._base_url}/machine/directory/{directory}'
214+
r = requests.put(url)
215+
if not r.ok:
216+
raise ValueError
217+
return r.text
183218

184219

185220
factory = DuetWebAPIFactory()

0 commit comments

Comments
 (0)