MCPcopy Create free account
hub / github.com/53AI/53AIHub / CreateLibrary

Method CreateLibrary

api/service/mcp/library_service.go:42–78  ·  view source on GitHub ↗
(ctx context.Context, eid, userID int64, name, description, icon string, spaceID int64, visibility *int, permissions []*model.PermissionData)

Source from the content-addressed store, hash-verified

40}
41
42func (s *LibraryService) CreateLibrary(ctx context.Context, eid, userID int64, name, description, icon string, spaceID int64, visibility *int, permissions []*model.PermissionData) (*model.Library, error) {
43 permission, err := core.GetUserPermission(eid, model.RESOURCE_TYPE_SPACE, spaceID, userID)
44 if err != nil || permission < model.PERMISSION_EDIT_KNOWLEDGE {
45 if err != nil {
46 return nil, err
47 }
48 return nil, errors.New("没有在该空间创建知识库的权限")
49 }
50
51 libraryVisibility := model.LIBRARY_VISIBILITY_INHERIT
52 if visibility != nil {
53 if *visibility < model.LIBRARY_VISIBILITY_INHERIT || *visibility > model.LIBRARY_VISIBILITY_PRIVATE {
54 return nil, errors.New("无效的可见性设置")
55 }
56 libraryVisibility = *visibility
57 }
58
59 library := &model.Library{
60 Name: name,
61 Description: description,
62 Icon: icon,
63 SpaceID: spaceID,
64 Eid: eid,
65 CreatorID: userID,
66 Status: model.LIBRARY_STATUS_ACTIVE,
67 Sort: 0,
68 Visibility: libraryVisibility,
69 }
70 if err := library.Save(); err != nil {
71 return nil, err
72 }
73
74 libraryPermissionService := core.NewLibraryPermissionService(eid)
75 _ = libraryPermissionService.AddLibraryCreatorPermission(library.ID, userID, permissions)
76
77 return library, nil
78}
79
80func (s *LibraryService) UpdateLibrary(ctx context.Context, eid, userID int64, libraryID int64, name, description, icon string, visibility *int) (*model.Library, error) {
81 permission, err := core.GetUserPermission(eid, model.RESOURCE_TYPE_LIBRARY, libraryID, userID)

Callers 1

CreateLibraryFunction · 0.95

Calls 3

SaveMethod · 0.95
NewMethod · 0.45

Tested by

no test coverage detected