class ItemSessionController(CdbSessionController): def __init__(self): CdbSessionController.__init__(self) self.itemControllerImpl = ItemControllerImpl() @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addLogToItemByQrId(self, qrId, logEntry, attachmentName=None, **kwargs): if not qrId: raise InvalidRequest("Invalid qrId provided") if not logEntry: raise InvalidRequest("Log entry must be provided") sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') attachmentName = Encoder.decode(attachmentName) cherrypyData = cherrypy.request.body logEntry = Encoder.decode(logEntry) logAdded = self.itemControllerImpl.addLogEntryForItemWithQrId( qrId, logEntry, enteredByUserId, attachmentName, cherrypyData) response = logAdded.getFullJsonRep() self.logger.debug('Returning log info for item with qrid %s: %s' % (qrId, response)) return response
class ItemController(CdbController): def __init__(self): CdbController.__init__(self) self.itemControllerImpl = ItemControllerImpl() @cherrypy.expose @CdbController.execute def getItemById(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") response = self.itemControllerImpl.getItemById(itemId).getFullJsonRep() self.logger.debug('Returning user info for %s: %s' % (itemId, response)) return response
def __init__(self): CdbSessionController.__init__(self) self.itemControllerImpl = ItemControllerImpl() self.propertyControllerImpl = PropertyControllerImpl()
class ItemSessionController(CdbSessionController): def __init__(self): CdbSessionController.__init__(self) self.itemControllerImpl = ItemControllerImpl() self.propertyControllerImpl = PropertyControllerImpl() @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addLogToItemByQrId(self, qrId, logEntry, attachmentName=None, **kwargs): if not qrId: raise InvalidRequest("Invalid qrId provided") if not logEntry: raise InvalidRequest("Log entry must be provided") sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') attachmentName = Encoder.decode(attachmentName) cherrypyData = cherrypy.request.body logEntry = Encoder.decode(logEntry) logAdded = self.itemControllerImpl.addLogEntryForItemWithQrId( qrId, logEntry, enteredByUserId, attachmentName, cherrypyData) response = logAdded.getFullJsonRep() self.logger.debug('Returning log info for item with qrid %s: %s' % (qrId, response)) return response @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addLogToItemByItemId(self, itemId, logEntry, attachmentName=None, **kwargs): if not itemId: raise InvalidRequest("Invalid itemId provided") if not logEntry: raise InvalidRequest("Log entry must be provided") sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') attachmentName = Encoder.decode(attachmentName) cherrypyData = cherrypy.request.body logEntry = Encoder.decode(logEntry) logAdded = self.itemControllerImpl.addLogEntryForItemWithItemId( itemId, logEntry, enteredByUserId, attachmentName, cherrypyData) response = logAdded.getFullJsonRep() self.logger.debug('Returning log info for item with item id %s: %s' % (itemId, response)) return response @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addPropertyImageToItem(self, itemId, imageFileName, dataEncodedBase64=False): if not itemId: raise InvalidRequest("Invalid item id provided") if not imageFileName: raise InvalidRequest("Invalid image file name provided") sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') imageFileName = Encoder.decode(imageFileName) cherrypyData = cherrypy.request.body if dataEncodedBase64: cherrypyData = Encoder.decode(cherrypyData.read()) imagePropertyAdded = self.itemControllerImpl.addPropertyImageToItem( itemId, imageFileName, enteredByUserId, cherrypyData) return imagePropertyAdded.getFullJsonRep() @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addItemElementRelationship(self, relationshipTypeName, firstItemId=None, secondItemId=None, firstItemQrId=None, secondItemQrId=None, relationshipDetails=None, description=None): if not firstItemId and not firstItemQrId: raise InvalidRequest("Invalid first item id provided") if not secondItemId and not secondItemQrId: raise InvalidRequest("Invalid second item id provided") if not relationshipTypeName: raise InvalidRequest("Invalid relationship type name provided") usingQrIds = None if firstItemId and secondItemId: usingQrIds = False elif firstItemQrId and secondItemQrId: usingQrIds = True else: raise InvalidRequest("Must either specify both qrIds or both Ids") relationshipTypeName = Encoder.decode(relationshipTypeName) if relationshipDetails is not None: relationshipDetails = Encoder.decode(relationshipDetails) if description is not None: description = Encoder.decode(description) sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') logMessageStart = "Returning item element relationship between " if usingQrIds: itemElementRelationship = self.itemControllerImpl.addItemElementRelationshipByQrId( firstItemQrId, secondItemQrId, relationshipTypeName, enteredByUserId, relationshipDetails, description) logMessageStart += "item qr: %s and item qr: %s" % (firstItemQrId, secondItemQrId) else: itemElementRelationship = self.itemControllerImpl.addItemElementRelationship( firstItemId, secondItemId, relationshipTypeName, enteredByUserId, relationshipDetails, description) logMessageStart += "item id: %s and item id: %s" % (firstItemId, secondItemId) response = itemElementRelationship.getFullJsonRep() self.logger.debug("%s of type: %s : %s" % (logMessageStart, relationshipTypeName, response)) return response @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addPropertyValueToItemByItemId(self, itemId, propertyTypeName, tag=None, value=None, displayValue=None, units=None, description=None, isUserWriteable=None, isDynamic=None): if not itemId: raise InvalidRequest("Invalid itemId provided") if not propertyTypeName: raise InvalidRequest("Invalid propertyTypeName provided") propertyTypeName = Encoder.decode(propertyTypeName) sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') optionalParameters = self.propertyControllerImpl.packageOptionalPropertyValueVariables( tag, value, units, description, isUserWriteable, isDynamic, displayValue) itemElementPropertyValueAdded = self.itemControllerImpl.addPropertyValueForItemWithId( itemId, propertyTypeName, enteredByUserId, **optionalParameters) propertyValueAdded = itemElementPropertyValueAdded.data[ 'propertyValue'] response = propertyValueAdded.getFullJsonRep() self.logger.debug( 'Returning new property value created for item with id %s: %s' % (itemId, propertyValueAdded)) return response @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def deletePropertyValuesFromItemByItemId(self, itemId, propertyTypeName): if not itemId: raise InvalidRequest("Invalid itemId provided") if not propertyTypeName: raise InvalidRequest("Invalid propertyTypeName provided") propertyTypeName = Encoder.decode(propertyTypeName) sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') deletedPropertyValues = self.itemControllerImpl.deletePropertyValuesFromItemByItemId( itemId, propertyTypeName, enteredByUserId) response = self.listToJson(deletedPropertyValues) return response @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def addItem(self, domainName, name, itemProjectName=None, ownerUserId=None, ownerGroupId=None, itemIdentifier1=None, itemIdentifier2=None, qrId=None, description=None, isGroupWriteable=None, entityTypeNames=None, derivedFromItemId=None): if not domainName: raise InvalidRequest("Invalid domain name provided") if not name: raise InvalidRequest("Invalid item name provided") domainName = Encoder.decode(domainName) name = Encoder.decode(name) sessionUser = self.getSessionUser() createdByUserId = sessionUser.get('id') if ownerUserId is None: ownerUserId = createdByUserId if ownerGroupId is None: userGroupList = sessionUser.data['userGroupList'] if len(userGroupList) > 0: ownerGroupId = userGroupList[0].data['id'] else: raise InvalidRequest( "Invalid, current session user is not assigned to any groups... please specify owner group id." ) optionalParameters = {} if itemIdentifier1 is not None: itemIdentifier1 = Encoder.decode(itemIdentifier1) optionalParameters.update({'itemIdentifier1': itemIdentifier1}) if itemIdentifier2 is not None: itemIdentifier2 = Encoder.decode(itemIdentifier2) optionalParameters.update({'itemIdentifier2': itemIdentifier2}) if qrId is not None: optionalParameters.update({'qrId': qrId}) if description is not None: description = Encoder.decode(description) optionalParameters.update({'description': description}) if isGroupWriteable is not None: isGroupWriteable = eval(isGroupWriteable) optionalParameters.update({'isGroupWriteable': isGroupWriteable}) if entityTypeNames is not None: entityTypeNames = Encoder.decode(entityTypeNames) if entityTypeNames[0] == '[': entityTypeNames = eval(entityTypeNames) optionalParameters.update({'entityTypeNames': entityTypeNames}) if derivedFromItemId is not None: optionalParameters.update({'derivedFromItemId': derivedFromItemId}) if itemProjectName is not None: itemProjectName = Encoder.decode(itemProjectName) optionalParameters.update({'itemProjectName': itemProjectName}) response = self.itemControllerImpl.addItem(domainName, name, createdByUserId, ownerUserId, ownerGroupId, **optionalParameters) self.logger.debug('Returning new item: %s' % (response)) return response.getFullJsonRep() @cherrypy.expose @CdbSessionController.require(CdbSessionController.isLoggedIn()) @CdbSessionController.execute def updateInventoryItemStatus(self, itemId, status): if not itemId: raise InvalidRequest("Item id must be provided") if not status: raise InvalidRequest("Status must be provided") status = Encoder.decode(status) sessionUser = self.getSessionUser() enteredByUserId = sessionUser.get('id') response = self.itemControllerImpl.updateInventoryItemStatus( itemId, status, enteredByUserId) self.logger.debug("Returning updated status: %s" % (response)) return response.getFullJsonRep()
def __init__(self): CdbController.__init__(self) self.itemControllerImpl = ItemControllerImpl()
class ItemController(CdbController): def __init__(self): CdbController.__init__(self) self.itemControllerImpl = ItemControllerImpl() @cherrypy.expose @CdbController.execute def getItemById(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") response = self.itemControllerImpl.getItemById(itemId).getFullJsonRep() self.logger.debug('Returning item info for %s: %s' % (itemId, response)) return response @cherrypy.expose @CdbController.execute def getItemByQrId(self, itemQrId): if not itemQrId: raise InvalidRequest("Invalid item qrId provided") response = self.itemControllerImpl.getItemByQrId( itemQrId).getFullJsonRep() self.logger.debug('Returning item info for qrid %s: %s' % (itemQrId, response)) return response @cherrypy.expose @CdbController.execute def getItemByUniqueAttributes(self, domainName, itemName, itemIdentifier1=None, itemIdentifier2=None, derivedFromItemId=None): if not domainName: raise InvalidRequest("Invalid domain name provided") if not itemName: raise InvalidRequest("Invalid itemName provided") domainName = Encoder.decode(domainName) itemName = Encoder.decode(itemName) if itemIdentifier1 is not None: itemIdentifier1 = Encoder.decode(itemIdentifier1) if itemIdentifier2 is not None: itemIdentifier2 = Encoder.decode(itemIdentifier2) item = self.itemControllerImpl.getItemByUniqueAttributes( domainName, itemName, itemIdentifier1, itemIdentifier2, derivedFromItemId) response = item.getFullJsonRep() self.logger.debug( 'Returning item info for item in domain %s with name %s: %s' % (domainName, itemName, response)) return response @cherrypy.expose @CdbController.execute def getFirstItemRelationship(self, itemId, relationshipTypeName): if not itemId: raise InvalidRequest("Invalid item id provided") if not relationshipTypeName: raise InvalidRequest("Invalid relationship type name provided") relationshipTypeName = Encoder.decode(relationshipTypeName) itemElementRelationshipList = self.itemControllerImpl.getFirstItemRelationship( itemId, relationshipTypeName) response = self.listToJson(itemElementRelationshipList) self.logger.debug( 'Returning item element relationship list of type: %s for item: %s : %s' % (relationshipTypeName, itemId, response)) return response def getParentItems(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") response = self.listToJson( self.itemControllerImpl.getParentItems(itemId)) self.logger.debug('Returning item element list for item: %s: %s' % (itemId, response)) return response def getItemElementsForItem(self, itemId): if not itemId: raise InvalidRequest("Invalid itemId provided") response = self.listToJson( self.itemControllerImpl.getItemElementsForItem(itemId)) self.logger.debug('Returning item element list for item: %s: %s' % (itemId, response)) return response @cherrypy.expose @CdbController.execute def getItemLogsByQrId(self, qrId): if not qrId: raise InvalidRequest("Invalid item QrId provided") logs = self.itemControllerImpl.getLogEntriesForItemWithQrId(qrId) response = self.listToJson(logs) self.logger.debug('Returning log entries for item with qrid: %s' % qrId) return response @cherrypy.expose @CdbController.execute def getItemLogsById(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") logs = self.itemControllerImpl.getLogEntriesForItemWithId(itemId) response = self.listToJson(logs) self.logger.debug('Returning log entries for item with id: %s' % itemId) return response @cherrypy.expose @CdbController.execute def getCatalogItems(self): catalogItems = self.itemControllerImpl.getCatalogItems() response = self.listToJson(catalogItems) return response @cherrypy.expose @CdbController.execute def getLocationItems(self): locationItems = self.itemControllerImpl.getLocationItems() response = self.listToJson(locationItems) return response def getTopLevelLocationItems(self): locationItems = self.itemControllerImpl.getLocationItemsWithoutParents( ) response = self.listToJson(locationItems) return response @cherrypy.expose @CdbController.execute def getItemsDerivedFromItem(self, derivedFromItemId): if not derivedFromItemId: raise InvalidRequest("Invalid derived from item id provided") catalogItems = self.itemControllerImpl.getItemsDerivedFromItemId( derivedFromItemId) response = self.listToJson(catalogItems) return response @cherrypy.expose @CdbController.execute def getPropertiesForItemByItemId(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") properties = self.itemControllerImpl.getPropertiesForItemId(itemId) response = self.listToJson(properties) return response @cherrypy.expose @CdbController.execute def getDomains(self): domains = self.itemControllerImpl.getDomains() response = self.listToJson(domains) return response @cherrypy.expose @CdbController.execute def getInventoryItemStatus(self, itemId): if not itemId: raise InvalidRequest("Item id must be provided") response = self.itemControllerImpl.getInventoryItemStatus(itemId) return response.getFullJsonRep() @cherrypy.expose @CdbController.execute def getAvailableInventoryItemStatuses(self): response = self.itemControllerImpl.getAvailableInventoryItemStatuses() return self.listToJson(response)
class ItemController(CdbController): def __init__(self): CdbController.__init__(self) self.itemControllerImpl = ItemControllerImpl() @cherrypy.expose @CdbController.execute def getItemById(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") response = self.itemControllerImpl.getItemById(itemId).getFullJsonRep() self.logger.debug('Returning item info for %s: %s' % (itemId, response)) return response @cherrypy.expose @CdbController.execute def getItemLogsByQrId(self, qrId): if not qrId: raise InvalidRequest("Invalid item QrId provided") logs = self.itemControllerImpl.getLogEntriesForItemWithQrId(qrId) response = self.listToJson(logs) self.logger.debug('Returning log entries for item with qrid: %s' % qrId) return response @cherrypy.expose @CdbController.execute def getItemLogsById(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") logs = self.itemControllerImpl.getLogEntriesForItemWithId(itemId) response = self.listToJson(logs) self.logger.debug('Returning log entries for item with id: %s' % itemId) return response @cherrypy.expose @CdbController.execute def getCatalogItems(self): catalogItems = self.itemControllerImpl.getCatalogItems() response = self.listToJson(catalogItems) return response @cherrypy.expose @CdbController.execute def getItemsDerivedFromItem(self, derivedFromItemId): if not derivedFromItemId: raise InvalidRequest("Invalid derived from item id provided") catalogItems = self.itemControllerImpl.getItemsDerivedFromItemId( derivedFromItemId) response = self.listToJson(catalogItems) return response @cherrypy.expose @CdbController.execute def getPropertiesForItemByItemId(self, itemId): if not itemId: raise InvalidRequest("Invalid item id provided") properties = self.itemControllerImpl.getPropertiesForItemId(itemId) response = self.listToJson(properties) return response