MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / UpdateDoc

Method UpdateDoc

service/api-doc/iml.go:75–117  ·  view source on GitHub ↗
(ctx context.Context, serviceId string, input *UpdateDoc)

Source from the content-addressed store, hash-verified

73}
74
75func (i *imlAPIDocService) UpdateDoc(ctx context.Context, serviceId string, input *UpdateDoc) (int64, error) {
76 doc, err := NewDocLoader(input.Content)
77 if err != nil {
78 return 0, err
79 }
80 if err := doc.Valid(); err != nil {
81 return 0, err
82 }
83 if input.Prefix != "" {
84 err = doc.AddPrefixInAll(input.Prefix)
85 if err != nil {
86 return 0, err
87 }
88 }
89 data, err := doc.Marshal()
90 if err != nil {
91 return 0, err
92 }
93 input.Content = string(data)
94 operator := utils.UserId(ctx)
95 info, err := i.store.First(ctx, map[string]interface{}{
96 "service": serviceId,
97 })
98
99 if err != nil {
100 if !errors.Is(err, gorm.ErrRecordNotFound) {
101 return 0, err
102 }
103 return doc.APICount(), i.store.Insert(ctx, &api.Doc{
104 UUID: input.ID,
105 Service: serviceId,
106 Content: input.Content,
107 Updater: operator,
108 UpdateAt: time.Now(),
109 APICount: doc.APICount(),
110 })
111 }
112 info.Content = input.Content
113 info.Updater = operator
114 info.UpdateAt = time.Now()
115 info.APICount = doc.APICount()
116 return doc.APICount(), i.store.Save(ctx, info)
117}
118
119func (i *imlAPIDocService) GetDoc(ctx context.Context, serviceId string) (*Doc, error) {
120 info, err := i.store.First(ctx, map[string]interface{}{

Callers

nothing calls this directly

Calls 6

ValidMethod · 0.95
AddPrefixInAllMethod · 0.95
MarshalMethod · 0.95
APICountMethod · 0.95
NewDocLoaderFunction · 0.85
SaveMethod · 0.65

Tested by

no test coverage detected