MCPcopy Index your code
hub / github.com/apache/answer / getOneObjectDetail

Method getOneObjectDetail

internal/service/activity/activity.go:372–431  ·  view source on GitHub ↗

getOneObjectDetail get object detail

(ctx context.Context, revisionID string)

Source from the content-addressed store, hash-verified

370
371// getOneObjectDetail get object detail
372func (as *ActivityService) getOneObjectDetail(ctx context.Context, revisionID string) (
373 resp *schema.ObjectTimelineDetail, err error) {
374 resp = &schema.ObjectTimelineDetail{Tags: make([]*schema.ObjectTimelineTag, 0)}
375
376 // if request revision is 0, return null object detail.
377 if revisionID == "0" {
378 return nil, nil
379 }
380
381 revision, err := as.revisionService.GetRevision(ctx, revisionID)
382 if err != nil {
383 log.Warn(err)
384 return nil, nil
385 }
386 objInfo, err := as.objectInfoService.GetInfo(ctx, revision.ObjectID)
387 if err != nil {
388 return nil, err
389 }
390
391 switch objInfo.ObjectType {
392 case constant.QuestionObjectType:
393 data := &entity.QuestionWithTagsRevision{}
394 if err = json.Unmarshal([]byte(revision.Content), data); err != nil {
395 log.Errorf("revision parsing error %s", err)
396 return resp, nil
397 }
398 for _, tag := range data.Tags {
399 resp.Tags = append(resp.Tags, &schema.ObjectTimelineTag{
400 SlugName: tag.SlugName,
401 DisplayName: tag.DisplayName,
402 MainTagSlugName: tag.MainTagSlugName,
403 Recommend: tag.Recommend,
404 Reserved: tag.Reserved,
405 })
406 }
407 resp.Title = data.Title
408 resp.OriginalText = data.OriginalText
409 case constant.AnswerObjectType:
410 data := &entity.Answer{}
411 if err = json.Unmarshal([]byte(revision.Content), data); err != nil {
412 log.Errorf("revision parsing error %s", err)
413 return resp, nil
414 }
415 resp.Title = objInfo.Title // answer show question title
416 resp.OriginalText = data.OriginalText
417 case constant.TagObjectType:
418 data := &entity.Tag{}
419 if err = json.Unmarshal([]byte(revision.Content), data); err != nil {
420 log.Errorf("revision parsing error %s", err)
421 return resp, nil
422 }
423 resp.Title = data.DisplayName
424 resp.OriginalText = data.OriginalText
425 resp.SlugName = data.SlugName
426 resp.MainTagSlugName = data.MainTagSlugName
427 default:
428 log.Errorf("unknown object type %s", objInfo.ObjectType)
429 }

Callers 1

Calls 2

GetInfoMethod · 0.80
GetRevisionMethod · 0.45

Tested by

no test coverage detected