def updateTag(request): # read in the crucial parameters tagKey = request.PUT.get('id', None) if not tagKey: raise Errors.MISSING_PARAMETER.setCustom('id') points = request.PUT.get('points', None) if points: try: points = json.loads(points) except ValueError: raise Errors.INVALID_SYNTAX.setCustom('points') else: raise Errors.MISSING_PARAMETER.setCustom('points') color = request.PUT.get('color', None) if color: try: color = json.loads(color) except ValueError: color = Util.getDelimitedList(request.PUT, 'color') else: raise Errors.MISSING_PARAMETER.setCustom('color') name = request.PUT.get('name', None) if not name: raise Errors.MISSING_PARAMETER.setCustom('name') # read in optional parameters and initialize the API fields = Util.getDelimitedList(request.PUT, 'fields') putAPI = PutAPI(request.user, fields) return putAPI.updateTag(tagKey, points, name, color)