You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

activity.go 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package convert
  4. import (
  5. "context"
  6. activities_model "code.gitea.io/gitea/models/activities"
  7. perm_model "code.gitea.io/gitea/models/perm"
  8. access_model "code.gitea.io/gitea/models/perm/access"
  9. user_model "code.gitea.io/gitea/models/user"
  10. "code.gitea.io/gitea/modules/log"
  11. api "code.gitea.io/gitea/modules/structs"
  12. )
  13. func ToActivity(ctx context.Context, ac *activities_model.Action, doer *user_model.User) *api.Activity {
  14. p, err := access_model.GetUserRepoPermission(ctx, ac.Repo, doer)
  15. if err != nil {
  16. log.Error("GetUserRepoPermission[%d]: %v", ac.RepoID, err)
  17. p.AccessMode = perm_model.AccessModeNone
  18. }
  19. result := &api.Activity{
  20. ID: ac.ID,
  21. UserID: ac.UserID,
  22. OpType: ac.OpType.String(),
  23. ActUserID: ac.ActUserID,
  24. ActUser: ToUser(ctx, ac.ActUser, doer),
  25. RepoID: ac.RepoID,
  26. Repo: ToRepo(ctx, ac.Repo, p),
  27. RefName: ac.RefName,
  28. IsPrivate: ac.IsPrivate,
  29. Content: ac.Content,
  30. Created: ac.CreatedUnix.AsTime(),
  31. }
  32. if ac.Comment != nil {
  33. result.CommentID = ac.CommentID
  34. result.Comment = ToAPIComment(ctx, ac.Repo, ac.Comment)
  35. }
  36. return result
  37. }
  38. func ToActivities(ctx context.Context, al activities_model.ActionList, doer *user_model.User) []*api.Activity {
  39. result := make([]*api.Activity, 0, len(al))
  40. for _, ac := range al {
  41. result = append(result, ToActivity(ctx, ac, doer))
  42. }
  43. return result
  44. }