Skip to content
Snippets Groups Projects
Commit 9a7c5e93 authored by sveseli's avatar sveseli
Browse files

more api docs added

parent c49b372a
No related branches found
No related tags found
No related merge requests found
......@@ -7,6 +7,6 @@ ExperimentDsApi
.. autoclass:: dm.ds_web_service.api.experimentDsApi.ExperimentDsApi()
:show-inheritance:
:members: __init__, getExperimentTypes, getExperiments, getExperimentsByStation
:members: __init__, getExperimentTypes, getExperiments, getExperimentsByStation, getExperimentByName, getExperimentById, addExperiment
......@@ -88,11 +88,13 @@ class ExperimentDsApi(DsRestApi):
:returns: list of Experiment objects
:raises InvalidRequest: if station name is empty or None
:raises AuthorizationError: in case user is not authorized to manage the given DM station
:raises DmException: in case of any other errors
>>> experimentList = api.getExperiments()
>>> experimentList = api.getExperimentsByStation()
>>> for experiment in experimentList:
>>> print experiment['id'], experiment['name']
'''
......@@ -103,16 +105,52 @@ class ExperimentDsApi(DsRestApi):
responseData = self.sendSessionRequest(url=url, method='GET')
return self.toDmObjectList(responseData, Experiment)
@DsRestApi.execute
@DsRestApi.execute2
def getExperimentByName(self, name):
'''
Get experiment.
:param name: experiment name
:type name: str
:returns: Experiment object
:raises InvalidRequest: if experiment name is empty or None
:raises AuthorizationError: in case user is not authorized to manage the DM station to which this experiment belongs
:raises DmException: in case of any other errors
>>> experiment = api.getExperimentByName('test01')
>>> print experiment['id']
'''
url = '%s/experimentsByName/%s' % (self.getContextRoot(), name)
if name is None or not len(name):
raise InvalidRequest('Experiment name must be provided.')
responseDict = self.sendSessionRequest(url=url, method='GET')
return Experiment(responseDict)
@DsRestApi.execute
@DsRestApi.execute2
def getExperimentById(self, id):
'''
Get experiment.
:param id: experiment id
:type id: int
:returns: Experiment object
:raises InvalidRequest: if experiment id is None
:raises AuthorizationError: in case user is not authorized to manage the DM station to which this experiment belongs
:raises DmException: in case of any other errors
>>> experiment = api.getExperimentById(123)
>>> print experiment['name']
'''
url = '%s/experimentsById/%s' % (self.getContextRoot(), id)
if id is None:
raise InvalidRequest('Experiment id must be provided.')
......@@ -146,8 +184,43 @@ class ExperimentDsApi(DsRestApi):
responseDict = self.sendSessionRequest(url=url, method='PUT')
return Experiment(responseDict)
@DsRestApi.execute
@DsRestApi.execute2
def addExperiment(self, name, stationName, typeName, description, startDate, endDate):
'''
Add experiment.
:param name: experiment name
:type name: str
:param stationName: DM station name
:type stationName: str
:param typeName: experiment type
:type typeName: str
:param description: experiment description
:type description: str
:param startDate: experiment start date
:type startDate: str
:param endDate: experiment end date
:type endDate: str
:returns: Experiment object
:raises InvalidRequest: if one of the required arguments (experiment name, station name and experiment type) is empty or None
:raises AuthorizationError: in case user is not authorized to manage the DM station to which this experiment belongs
:raises ObjectAlreadyExists: if experiment with a given name already exists
:raises DmException: in case of any other errors
>>> experiment = api.addExperiment(name='test01', stationName='TEST', typeName='TEST')
>>> print experiment['id']
'''
url = '%s/experiments' % (self.getContextRoot())
if not name:
raise InvalidRequest('Experiment name must be provided.')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment