MCPcopy Index your code
hub / github.com/1Panel-dev/MaxKB / add

Method add

apps/tools/serializers/tool.py:1210–1248  ·  view source on GitHub ↗
(self, instance, with_valid=True)

Source from the content-addressed store, hash-verified

1208 tool_id = serializers.UUIDField(required=True, label=_("tool id"))
1209
1210 def add(self, instance, with_valid=True):
1211 if with_valid:
1212 self.is_valid(raise_exception=True)
1213 AddInternalToolRequest(data=instance).is_valid(raise_exception=True)
1214
1215 internal_tool = QuerySet(Tool).filter(id=self.data.get("tool_id")).first()
1216 if internal_tool is None:
1217 raise AppApiException(500, _("Tool does not exist"))
1218
1219 tool_id = uuid.uuid7()
1220 tool = Tool(
1221 id=tool_id,
1222 name=instance.get("name", internal_tool.name),
1223 desc=internal_tool.desc,
1224 code=internal_tool.code,
1225 user_id=self.data.get("user_id"),
1226 icon=internal_tool.icon,
1227 workspace_id=self.data.get("workspace_id"),
1228 input_field_list=internal_tool.input_field_list,
1229 init_field_list=internal_tool.init_field_list,
1230 scope=ToolScope.WORKSPACE,
1231 tool_type=ToolType.CUSTOM,
1232 folder_id=instance.get("folder_id", self.data.get("workspace_id")),
1233 template_id=internal_tool.id,
1234 label=internal_tool.label,
1235 is_active=False,
1236 )
1237 tool.save()
1238
1239 # 自动授权给创建者
1240 UserResourcePermissionSerializer(
1241 data={
1242 "workspace_id": self.data.get("workspace_id"),
1243 "user_id": self.data.get("user_id"),
1244 "auth_target_type": AuthTargetType.TOOL.value,
1245 }
1246 ).auth_resource(str(tool_id))
1247
1248 return ToolModelSerializer(tool).data
1249
1250 class StoreTool(serializers.Serializer):
1251 user_id = serializers.UUIDField(required=True, label=_("User ID"))

Callers

nothing calls this directly

Calls 9

AppApiExceptionClass · 0.90
ToolClass · 0.90
ToolModelSerializerClass · 0.85
auth_resourceMethod · 0.80
is_validMethod · 0.45
getMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected