Skip to content
Snippets Groups Projects
Commit 5a74f98a authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

Merge branch 'f-file-entity' into 'dev'

ENH: Add functions for File entities

See merge request !2
parents 05feb8f4 82841cb3
No related branches found
No related tags found
1 merge request!2ENH: Add functions for File entities
......@@ -39,7 +39,7 @@ function _getRoleString(role) {
case roles.ENTITY_ROLE_FILE:
return "FILE";
default:
throw `Unknown role ${role}.`;
throw new Error(`Unknown role ${role}.`);
}
}
......@@ -53,6 +53,14 @@ export class Entity {
return this.wrappedEntity.getDescription();
}
getFilePath() {
if (!this.isFile()) {
throw new Error(`Only FILE entities can have a file path.`);
}
const fileDescriptor = this.wrappedEntity.getFileDescriptor();
return fileDescriptor.getPath();
}
getId() {
return this.wrappedEntity.getId();
}
......@@ -90,4 +98,8 @@ export class Entity {
isRecord() {
return this.wrappedEntity.getRole() === api.v1.EntityRole.ENTITY_ROLE_RECORD;
}
isFile() {
return this.wrappedEntity.getRole() === api.v1.EntityRole.ENTITY_ROLE_FILE;
}
}
......@@ -37,7 +37,7 @@ function _getScalarValue(value) {
case valueCases.SPECIAL_VALUE:
return value.getSpecialValue();
default:
throw `Unkown value type ${value.getScalarValueCase()}.`;
throw new Error(`Unkown value type ${value.getScalarValueCase()}.`);
}
}
......@@ -78,12 +78,17 @@ export class Property {
case valueCases.LIST_VALUES:
return _getListValue(wrappedValue.getListValues().getValuesList());
default:
throw `Unknown value type ${wrappedValue.getValueCase()}.`;
throw new Error(`Unknown value type ${wrappedValue.getValueCase()}.`);
}
}
isList() {
const dtypeCase = this.wrappedProperty.getDataType().getDataTypeCase();
return dtypeCase === api.v1.DataType.DataTypeCase.LIST_DATA_TYPE;
}
isReference() {
const wrappedDataType = this.wrappedProperty.getDataType()
const wrappedDataType = this.wrappedProperty.getDataType();
const dtypeCase = wrappedDataType.getDataTypeCase();
return (
(dtypeCase === api.v1.DataType.DataTypeCase.REFERENCE_DATA_TYPE) ||
......
......@@ -27,13 +27,19 @@ export class TransactionService {
this.uri = uri || "/api";
}
_PrepareTransaction(retrieveRequest) {
_PrepareTransaction(retrieveRequests) {
if (!(Array.isArray(retrieveRequests))) {
retrieveRequests = [retrieveRequests];
}
const client = new api.v1.EntityTransactionServiceClient(this.uri, null, null);
var transactionRequest = new api.v1.TransactionRequest();
transactionRequest.setRetrieveRequest(retrieveRequest);
var request = new api.v1.MultiTransactionRequest();
request.addRequests(transactionRequest);
var transactionRequest;
for (let retrieveRequest of retrieveRequests) {
transactionRequest = new api.v1.TransactionRequest();
transactionRequest.setRetrieveRequest(retrieveRequest);
request.addRequests(transactionRequest);
}
const headers = {};
return (res_cb, err_cb) => {
......@@ -66,9 +72,12 @@ export class TransactionService {
return query_request;
}
async retrieve(id) {
const retrieveRequest = this._CreateRetrieveRequest(id);
return new Promise(this._PrepareTransaction(retrieveRequest));
async retrieve(ids) {
if (!(Array.isArray(ids))) {
ids = [ids]
}
const retrieveRequests = ids.map(id => this._CreateRetrieveRequest(id));
return new Promise(this._PrepareTransaction(retrieveRequests));
}
async executeQuery(query) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment