Fix URL services
This commit is contained in:
parent
bf816d2e35
commit
f2be1661ab
|
@ -1,3 +1,4 @@
|
|||
# acloud-cli
|
||||
|
||||
Versión CLI para los servicios de Atian Cloud
|
||||
Versión CLI para los servicios de [Astian Cloud](https://acloud.astian.org/register)
|
||||
|
||||
|
|
|
@ -16,8 +16,10 @@
|
|||
# ~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
import json
|
||||
import logging
|
||||
import httpx
|
||||
import requests
|
||||
|
||||
|
||||
LOG_FORMAT = '%(asctime)s - %(levelname)s - %(message)s'
|
||||
|
@ -37,6 +39,16 @@ class ACloudServer(object):
|
|||
def __init__(self, server, version='v1'):
|
||||
self._server = f'{server}/api/{version}'
|
||||
self._token = ''
|
||||
self._error = ''
|
||||
self._status = 0
|
||||
|
||||
@property
|
||||
def error(self):
|
||||
return self._error
|
||||
|
||||
@property
|
||||
def status(self):
|
||||
return self._status
|
||||
|
||||
@property
|
||||
def token(self):
|
||||
|
@ -45,8 +57,28 @@ class ACloudServer(object):
|
|||
def token(self, value):
|
||||
self._token = value
|
||||
|
||||
def login(self, user, contra):
|
||||
data = {'email': user, 'password': contra, 'token_name': 'token'}
|
||||
def _post(self, method, data):
|
||||
headers = {
|
||||
'Authorization': f'Bearer {self.token}',
|
||||
'accept': 'application/json'}
|
||||
url = f'{self._server}/{method}'
|
||||
result = httpx.post(url, data=data, headers=headers)
|
||||
self._status = result.status_code
|
||||
return result.json()
|
||||
|
||||
def _delete(self, method, params):
|
||||
headers = {
|
||||
'Authorization': f'Bearer {self.token}',
|
||||
'accept': 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
url = f'{self._server}/{method}'
|
||||
response = requests.delete(url, headers=headers, json=params)
|
||||
self._status = response.status_code
|
||||
return response.json()
|
||||
|
||||
def login(self, user, contra, token_name='token'):
|
||||
data = {'email': user, 'password': contra, 'token_name': token_name}
|
||||
result = httpx.post(f'{self._server}/auth/login', data=data)
|
||||
if result.status_code == 422:
|
||||
return False
|
||||
|
@ -55,3 +87,27 @@ class ACloudServer(object):
|
|||
self._token = data['user']['access_token']
|
||||
return result.status_code == 200
|
||||
|
||||
def folder_create(self, name, id_parent=0):
|
||||
self._error = ''
|
||||
id = None
|
||||
data = {'name': name, 'parentID': id_parent}
|
||||
data = self._post('folders', data=data)
|
||||
if self.status == 200:
|
||||
id = data['folder']['id']
|
||||
else:
|
||||
self._error = data['errors']
|
||||
log.error(self._error)
|
||||
return id
|
||||
|
||||
def delete(self, ids, delete_forever=False):
|
||||
if isinstance(ids, int):
|
||||
ids = [ids]
|
||||
result = True
|
||||
params = {'entryIds': ids, 'deleteForever': delete_forever}
|
||||
data = self._delete('entries', params)
|
||||
if self.status != 200:
|
||||
self._error = data['errors']
|
||||
log.error(self._error)
|
||||
result = False
|
||||
return result
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@ class TestApiCloud(unittest.TestCase):
|
|||
result = self.server.folder_create(folder_name)
|
||||
self.assertEqual(expected, type(result))
|
||||
|
||||
print(result)
|
||||
|
||||
expected = True
|
||||
result = self.server.delete(result, True)
|
||||
self.assertEqual(expected, result)
|
||||
|
|
Loading…
Reference in New Issue