Skip to content
Snippets Groups Projects
Forked from DM / dm-docs
261 commits behind, 257 commits ahead of the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
fileSessionController.py 1.37 KiB
#!/usr/bin/env python

import cherrypy

from dm.common.service.dmSessionController import DmSessionController
from dm.common.exceptions.invalidRequest import InvalidRequest
from dm.common.utility.encoder import Encoder

from dm.ds_web_service.service.impl.fileSessionControllerImpl import FileSessionControllerImpl


class FileSessionController(DmSessionController):

    def __init__(self):
        DmSessionController.__init__(self)
        self.fileSessionControllerImpl = FileSessionControllerImpl()

    @cherrypy.expose
    @DmSessionController.require(DmSessionController.isAdministrator())
    @DmSessionController.execute
    def processFile(self, **kwargs):
        fileName = kwargs.get('fileName')
        if not fileName: 
            raise InvalidRequest('Missing file name.')
        fileName = Encoder.decode(fileName)
        filePath = kwargs.get('filePath')
        if not filePath:
            raise InvalidRequest('Missing file path.')
        filePath = Encoder.decode(filePath)
        experimentName = kwargs.get('experimentName')
        if not experimentName:
            raise InvalidRequest('Missing experiment name.')
        experimentName = Encoder.decode(experimentName)

        response = self.fileSessionControllerImpl.processFile(fileName, filePath, experimentName).getFullJsonRep()
        self.logger.debug('Returning: %s' % response)
        return response