1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo.git synced 2024-11-21 08:31:27 -05:00

Rename to actorID

This commit is contained in:
erik 2023-11-22 13:28:13 +01:00 committed by Michael Jerger
parent 5e111f14ef
commit 235ed7cd1e
3 changed files with 12 additions and 13 deletions

View file

@ -6,8 +6,7 @@ import (
"strings" "strings"
) )
// TODO: Name ActorId ? type ActorID struct {
type ActorData struct {
schema string schema string
userId string userId string
path string path string
@ -16,7 +15,7 @@ type ActorData struct {
} }
// TODO: Align validation-api to example from dda-devops-build // TODO: Align validation-api to example from dda-devops-build
func (a ActorData) ValidateActorData() error { func (a ActorID) ValidateActorID() error {
if a.schema == "" || a.host == "" { if a.schema == "" || a.host == "" {
return fmt.Errorf("the actor ID was not valid: Invalid Schema or Host") return fmt.Errorf("the actor ID was not valid: Invalid Schema or Host")
@ -30,18 +29,18 @@ func (a ActorData) ValidateActorData() error {
} }
func ParseActorData(actor string) (ActorData, error) { func ParseActorID(actor string) (ActorID, error) {
u, err := url.Parse(actor) u, err := url.Parse(actor)
// check if userID IRI is well formed url // check if userID IRI is well formed url
if err != nil { if err != nil {
return ActorData{}, fmt.Errorf("the actor ID was not a valid IRI: %v", err) return ActorID{}, fmt.Errorf("the actor ID was not a valid IRI: %v", err)
} }
pathWithUserID := strings.Split(u.Path, "/") pathWithUserID := strings.Split(u.Path, "/")
userId := pathWithUserID[len(pathWithUserID)-1] userId := pathWithUserID[len(pathWithUserID)-1]
return ActorData{ return ActorID{
schema: u.Scheme, schema: u.Scheme,
userId: userId, userId: userId,
host: u.Host, host: u.Host,

View file

@ -10,17 +10,17 @@ import (
func Test_ActorParser(t *testing.T) { func Test_ActorParser(t *testing.T) {
type testPair struct { type testPair struct {
item string item string
want ActorData want ActorID
} }
tests := map[string]testPair{ tests := map[string]testPair{
"empty": { "empty": {
item: "", item: "",
want: ActorData{}, want: ActorID{},
}, },
"withValidActorID": { "withValidActorID": {
item: "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1", item: "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1",
want: ActorData{ want: ActorID{
schema: "https", schema: "https",
userId: "1", userId: "1",
path: "/api/v1/activitypub/user-id/1", path: "/api/v1/activitypub/user-id/1",
@ -30,7 +30,7 @@ func Test_ActorParser(t *testing.T) {
}, },
"withInvalidActorID": { "withInvalidActorID": {
item: "https://repo.prod.meissa.de/api/activitypub/user-id/1", item: "https://repo.prod.meissa.de/api/activitypub/user-id/1",
want: ActorData{ want: ActorID{
schema: "https", schema: "https",
userId: "1", userId: "1",
path: "/api/v1/activitypub/user-id/1", path: "/api/v1/activitypub/user-id/1",
@ -42,7 +42,7 @@ func Test_ActorParser(t *testing.T) {
for name, _ := range tests { for name, _ := range tests {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
_, err := ParseActorData(tests[name].item) _, err := ParseActorID(tests[name].item)
if err != nil { if err != nil {
t.Errorf("parseActor() error = \"%v\"", err) t.Errorf("parseActor() error = \"%v\"", err)

View file

@ -88,7 +88,7 @@ func RepositoryInbox(ctx *context.APIContext) {
// assume actor is: "actor": "https://codeberg.org/api/v1/activitypub/user-id/12345" - NB: This might be actually the ID? Maybe check vocabulary. // assume actor is: "actor": "https://codeberg.org/api/v1/activitypub/user-id/12345" - NB: This might be actually the ID? Maybe check vocabulary.
// TODO: validate input in front of parsing. // TODO: validate input in front of parsing.
// parse actor // parse actor
actor, err := activitypub.ParseActorData(opt.Actor.GetID().String()) actor, err := activitypub.ParseActorID(opt.Actor.GetID().String())
// Is the actor IRI well formed? // Is the actor IRI well formed?
if err != nil { if err != nil {
@ -96,7 +96,7 @@ func RepositoryInbox(ctx *context.APIContext) {
} }
// Is the ActorData Struct valid? // Is the ActorData Struct valid?
err = actor.ValidateActorData() err = actor.ValidateActorID()
if err != nil { if err != nil {
panic(err) panic(err)