(ctx context.Context, serviceId string, input *UpdateDoc)
| 73 | } |
| 74 | |
| 75 | func (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 | |
| 119 | func (i *imlAPIDocService) GetDoc(ctx context.Context, serviceId string) (*Doc, error) { |
| 120 | info, err := i.store.First(ctx, map[string]interface{}{ |
nothing calls this directly
no test coverage detected