// Copyright 2024, 2025 The Forgejo Authors. All rights reserved.// SPDX-License-Identifier: MIT package forgefed import ( "time" user_model "forgejo.org/models/user" "forgejo.org/modules/validation" ap "github.com/go-ap/activitypub") // ForgeFollow activity data type// swagger:modeltype ForgeUserActivityNote struct { // swagger.ignore ap.Object} func NewForgeUserActivityNoteFromAp(item ap.Item) (ForgeUserActivityNote, error) { result := ForgeUserActivityNote{} object := item.(*ap.Object) result.Object = *object if valid, err := validation.IsValid(result); !valid { return ForgeUserActivityNote{}, err } return result, nil} // TODO: Unused - might be removedfunc newNote(doer *user_model.User, content, id string, published time.Time) (ForgeUserActivityNote, error) { note := ForgeUserActivityNote{} note.Type = ap.NoteType note.AttributedTo = ap.IRI(doer.APActorID()) note.Content = ap.NaturalLanguageValues{ { Ref: ap.NilLangRef, Value: ap.Content(content), }, } note.ID = ap.IRI(id) note.Published = published note.URL = ap.IRI(id) note.To = ap.ItemCollection{ ap.IRI("https://www.w3.org/ns/activitystreams#Public"), } note.CC = ap.ItemCollection{ ap.IRI(doer.APActorID() + "/followers"), } if valid, err := validation.IsValid(note); !valid { return ForgeUserActivityNote{}, err } return note, nil} func (note ForgeUserActivityNote) Validate() []string { var result []string result = append(result, validation.ValidateNotEmpty(string(note.Type), "type")...) result = append(result, validation.ValidateOneOf(string(note.Type), []any{"Note"}, "type")...) result = append(result, validation.ValidateNotEmpty(note.Content.String(), "content")...) result = append(result, validation.ValidateIDExists(note.URL, "url")...) return result}
// Copyright 2024, 2025 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package forgefed
import (
"time"
user_model "forgejo.org/models/user"
"forgejo.org/modules/validation"
ap "github.com/go-ap/activitypub"
)
// ForgeFollow activity data type
// swagger:model
type ForgeUserActivityNote struct {
// swagger.ignore
ap.Object
}
func NewForgeUserActivityNoteFromAp(item ap.Item) (ForgeUserActivityNote, error) {
result := ForgeUserActivityNote{}
object := item.(*ap.Object)
result.Object = *object
if valid, err := validation.IsValid(result); !valid {
return ForgeUserActivityNote{}, err
}
return result, nil
}
// TODO: Unused - might be removed
func newNote(doer *user_model.User, content, id string, published time.Time) (ForgeUserActivityNote, error) {
note := ForgeUserActivityNote{}
note.Type = ap.NoteType
note.AttributedTo = ap.IRI(doer.APActorID())
note.Content = ap.NaturalLanguageValues{
{
Ref: ap.NilLangRef,
Value: ap.Content(content),
},
}
note.ID = ap.IRI(id)
note.Published = published
note.URL = ap.IRI(id)
note.To = ap.ItemCollection{
ap.IRI("https://www.w3.org/ns/activitystreams#Public"),
}
note.CC = ap.ItemCollection{
ap.IRI(doer.APActorID() + "/followers"),
}
if valid, err := validation.IsValid(note); !valid {
return ForgeUserActivityNote{}, err
}
return note, nil
}
func (note ForgeUserActivityNote) Validate() []string {
var result []string
result = append(result, validation.ValidateNotEmpty(string(note.Type), "type")...)
result = append(result, validation.ValidateOneOf(string(note.Type), []any{"Note"}, "type")...)
result = append(result, validation.ValidateNotEmpty(note.Content.String(), "content")...)
result = append(result, validation.ValidateIDExists(note.URL, "url")...)
return result
}