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

Method ServiceDetail

module/catalogue/iml.go:329–435  ·  view source on GitHub ↗
(ctx context.Context, sid string)

Source from the content-addressed store, hash-verified

327}
328
329func (i *imlCatalogueModule) ServiceDetail(ctx context.Context, sid string) (*catalogue_dto.ServiceDetail, error) {
330 // 获取服务的基本信息
331 s, err := i.serviceService.Get(ctx, sid)
332 if err != nil {
333 return nil, fmt.Errorf("get service failed: %w", err)
334 }
335 r, err := i.releaseService.GetRunning(ctx, s.Id)
336 if err != nil {
337 if errors.Is(err, gorm.ErrRecordNotFound) {
338 return &catalogue_dto.ServiceDetail{
339 Name: s.Name,
340 Description: s.Description,
341 Document: "",
342 Basic: &catalogue_dto.ServiceBasic{
343 Team: auto.UUID(s.Team),
344 ApiNum: 0,
345 },
346 }, nil
347 }
348
349 return nil, fmt.Errorf("get running release failed: %w", err)
350 }
351
352 countMap, err := i.subscribeService.CountMapByService(ctx, subscribe.ApplyStatusSubscribe, sid)
353 if err != nil {
354 return nil, err
355 }
356 tags, err := i.serviceTagService.List(ctx, []string{sid}, nil)
357 if err != nil {
358 return nil, err
359 }
360 tagIds := utils.SliceToSlice(tags, func(t *service_tag.Tag) string {
361 return t.Tid
362 }, func(t *service_tag.Tag) bool {
363 return t.Sid == sid
364 })
365 _, _, apiDocCommit, _, serviceDocCommit, err := i.releaseService.GetReleaseInfos(ctx, r.UUID)
366 if err != nil {
367 return nil, fmt.Errorf("get release apis failed: %w", err)
368 }
369 var apiDoc string
370 var apiNum int
371 if apiDocCommit != nil {
372 commit, err := i.apiDocService.GetDocCommit(ctx, apiDocCommit.Commit)
373 if err != nil {
374 return nil, err
375 }
376 apiDoc = commit.Data.Content
377 apiNum = int(commit.Data.APICount)
378 }
379
380 var serviceDoc string
381 if serviceDocCommit != nil {
382 commit, err := i.serviceDocService.GetDocCommit(ctx, serviceDocCommit.Commit)
383 if err != nil {
384 return nil, err
385 }
386 serviceDoc = commit.Data.Content

Callers

nothing calls this directly

Calls 9

ProviderStatisticsMethod · 0.95
ToStringMethod · 0.80
GetMethod · 0.65
GetRunningMethod · 0.65
CountMapByServiceMethod · 0.65
ListMethod · 0.65
GetReleaseInfosMethod · 0.65
GetDocCommitMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected