Template
1
0
Fork 0
mirror of https://codeberg.org/forgejo/forgejo synced 2024-11-25 11:16:11 +01: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"
)
// TODO: Name ActorId ?
type ActorData struct {
type ActorID struct {
schema string
userId string
path string
@ -16,7 +15,7 @@ type ActorData struct {
}
// 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 == "" {
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)
// check if userID IRI is well formed url
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, "/")
userId := pathWithUserID[len(pathWithUserID)-1]
return ActorData{
return ActorID{
schema: u.Scheme,
userId: userId,
host: u.Host,

View file

@ -10,17 +10,17 @@ import (
func Test_ActorParser(t *testing.T) {
type testPair struct {
item string
want ActorData
want ActorID
}
tests := map[string]testPair{
"empty": {
item: "",
want: ActorData{},
want: ActorID{},
},
"withValidActorID": {
item: "https://repo.prod.meissa.de/api/v1/activitypub/user-id/1",
want: ActorData{
want: ActorID{
schema: "https",
userId: "1",
path: "/api/v1/activitypub/user-id/1",
@ -30,7 +30,7 @@ func Test_ActorParser(t *testing.T) {
},
"withInvalidActorID": {
item: "https://repo.prod.meissa.de/api/activitypub/user-id/1",
want: ActorData{
want: ActorID{
schema: "https",
userId: "1",
path: "/api/v1/activitypub/user-id/1",
@ -42,7 +42,7 @@ func Test_ActorParser(t *testing.T) {
for name, _ := range tests {
t.Run(name, func(t *testing.T) {
_, err := ParseActorData(tests[name].item)
_, err := ParseActorID(tests[name].item)
if err != nil {
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.
// TODO: validate input in front of parsing.
// parse actor
actor, err := activitypub.ParseActorData(opt.Actor.GetID().String())
actor, err := activitypub.ParseActorID(opt.Actor.GetID().String())
// Is the actor IRI well formed?
if err != nil {
@ -96,7 +96,7 @@ func RepositoryInbox(ctx *context.APIContext) {
}
// Is the ActorData Struct valid?
err = actor.ValidateActorData()
err = actor.ValidateActorID()
if err != nil {
panic(err)