Added support for asset upload
Removed lxml dependency
This commit is contained in:
@@ -25,6 +25,8 @@ CRX_SERVER_ROOT = '/crx/server/crx.default/jcr:root/'
|
||||
CRX_QUERY = '/crx/de/query.jsp'
|
||||
WCM_REFERENCES = '/bin/wcm/references.json'
|
||||
|
||||
CREATE_ASSET = '.createasset.html'
|
||||
|
||||
JSON_DATA_EXTENSION = '.1.json'
|
||||
|
||||
QUERY_TYPES = {
|
||||
@@ -66,7 +68,7 @@ class Connection:
|
||||
"""
|
||||
self._session.auth = (username, password)
|
||||
|
||||
def query(self, query: str, query_type: str = 'SQL2') -> List[str]:
|
||||
def query(self, query: str, query_type: str = 'SQL2', raise_on_error: bool = True) -> List[str]:
|
||||
"""
|
||||
Perform an query and return the matching paths.
|
||||
Query may be an XPATH, SQL or SQL2 Query
|
||||
@@ -87,6 +89,8 @@ class Connection:
|
||||
data = response.json()
|
||||
|
||||
# TODO check for error
|
||||
if not data['success']:
|
||||
raise ValueError(data['errorMessage'])
|
||||
|
||||
return list(map(lambda node: node['path'], data['results']))
|
||||
|
||||
@@ -106,6 +110,28 @@ class Connection:
|
||||
})
|
||||
return response.json()['pages']
|
||||
|
||||
def upload_asset(self, dam_directory: str, filename: str, data: bytes, content_type: str):
|
||||
"""
|
||||
Upload an asset to the DAM as if it was uploaded through the GUI
|
||||
|
||||
Args:
|
||||
dam_directory: The directory to upload to (including /content/dam)
|
||||
filename: The file name of the asset (no path or anything)
|
||||
data: The content of the asset
|
||||
content_type: The content type of the asset
|
||||
|
||||
Raises:
|
||||
When an error occurs, Request will raise an error for the incorrect status code
|
||||
"""""
|
||||
url: str = self._host + dam_directory + CREATE_ASSET
|
||||
files = {
|
||||
'file': (filename, data, content_type),
|
||||
'fileName': filename,
|
||||
'_charset_': 'utf-8'
|
||||
}
|
||||
resp = self._session.post(url, files=files)
|
||||
resp.raise_for_status()
|
||||
|
||||
def get_node_raw(self, path: str):
|
||||
"""
|
||||
Get the raw JSON dictionary of a node.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
requests >= 2.21.0
|
||||
lxml >= 4.3.0
|
||||
#lxml >= 4.3.0
|
||||
|
||||
# For unprotect function
|
||||
# pywin32 >= 224
|
||||
|
||||
Reference in New Issue
Block a user