AddReport add report
(ctx context.Context, req *schema.AddReportReq)
| 87 | |
| 88 | // AddReport add report |
| 89 | func (rs *ReportService) AddReport(ctx context.Context, req *schema.AddReportReq) (err error) { |
| 90 | objectTypeNumber, err := obj.GetObjectTypeNumberByObjectID(req.ObjectID) |
| 91 | if err != nil { |
| 92 | return err |
| 93 | } |
| 94 | |
| 95 | objInfo, err := rs.objectInfoService.GetInfo(ctx, req.ObjectID) |
| 96 | if err != nil { |
| 97 | return err |
| 98 | } |
| 99 | if objInfo.IsDeleted() { |
| 100 | return errors.BadRequest(reason.NewObjectAlreadyDeleted) |
| 101 | } |
| 102 | |
| 103 | cf, err := rs.configService.GetConfigByID(ctx, req.ReportType) |
| 104 | if err != nil || cf == nil { |
| 105 | return errors.BadRequest(reason.ReportNotFound) |
| 106 | } |
| 107 | if cf.Key == constant.ReasonADuplicate && !checker.IsURL(req.Content) { |
| 108 | return errors.BadRequest(reason.InvalidURLError) |
| 109 | } |
| 110 | |
| 111 | report := &entity.Report{ |
| 112 | UserID: req.UserID, |
| 113 | ReportedUserID: objInfo.ObjectCreatorUserID, |
| 114 | ObjectID: req.ObjectID, |
| 115 | ObjectType: objectTypeNumber, |
| 116 | ReportType: req.ReportType, |
| 117 | Content: req.Content, |
| 118 | Status: entity.ReportStatusPending, |
| 119 | } |
| 120 | err = rs.reportRepo.AddReport(ctx, report) |
| 121 | if err != nil { |
| 122 | return err |
| 123 | } |
| 124 | rs.sendEvent(ctx, report, objInfo) |
| 125 | return nil |
| 126 | } |
| 127 | |
| 128 | // GetUnreviewedReportPostPage get unreviewed report post page |
| 129 | func (rs *ReportService) GetUnreviewedReportPostPage(ctx context.Context, req *schema.GetUnreviewedReportPostPageReq) ( |
nothing calls this directly
no test coverage detected