MCPcopy
hub / github.com/1Panel-dev/MaxKB / insert

Method insert

apps/folders/serializers/folder.py:138–173  ·  view source on GitHub ↗
(self, instance, with_valid=True)

Source from the content-addressed store, hash-verified

136 source = serializers.CharField(required=True, label=_('source'))
137
138 def insert(self, instance, with_valid=True):
139 if with_valid:
140 self.is_valid(raise_exception=True)
141 FolderCreateRequest(data=instance).is_valid(raise_exception=True)
142
143 workspace_id = self.data.get('workspace_id')
144 if not workspace_id:
145 workspace_id = 'default'
146 parent_id = instance.get('parent_id')
147 if not parent_id:
148 parent_id = workspace_id
149 name = instance.get('name')
150
151 Folder = get_folder_type(self.data.get('source')) # noqa
152 if QuerySet(Folder).filter(name=name, workspace_id=workspace_id, parent_id=parent_id).exists():
153 raise AppApiException(500, _('Folder name already exists'))
154 # Folder 不能超过3层
155 check_depth(self.data.get('source'), parent_id, workspace_id)
156
157 folder = Folder(
158 id=uuid.uuid7(),
159 name=instance.get('name'),
160 desc=instance.get('desc'),
161 user_id=self.data.get('user_id'),
162 workspace_id=workspace_id,
163 parent_id=parent_id
164 )
165 folder.save()
166
167 UserResourcePermissionSerializer(data={
168 'workspace_id': self.data.get('workspace_id'),
169 'user_id': self.data.get('user_id'),
170 'auth_target_type': self.data.get('source')
171 }).auth_resource(str(folder.id), is_folder=True)
172
173 return FolderSerializer(folder).data
174
175 class Operate(serializers.Serializer):
176 id = serializers.CharField(required=True, label=_('folder id'))

Callers 1

postMethod · 0.45

Calls 11

is_validMethod · 0.95
FolderCreateRequestClass · 0.90
AppApiExceptionClass · 0.90
get_folder_typeFunction · 0.85
check_depthFunction · 0.85
FolderSerializerClass · 0.85
auth_resourceMethod · 0.80
is_validMethod · 0.45
getMethod · 0.45
saveMethod · 0.45

Tested by

no test coverage detected