kopia lustrzana https://github.com/reiver/greatape
69 wiersze
2.2 KiB
Go
69 wiersze
2.2 KiB
Go
package services
|
|
|
|
import (
|
|
. "github.com/reiver/greatape/components/api/protobuf"
|
|
. "github.com/reiver/greatape/components/contracts"
|
|
. "github.com/reiver/greatape/components/core"
|
|
. "github.com/xeronith/diamante/contracts/service"
|
|
)
|
|
|
|
func GetActorService(context IContext, input *GetActorRequest) (result *GetActorResult, err error) {
|
|
source := "get_actor"
|
|
/* //////// */ Conductor.LogRemoteCall(context, INIT, source, input, result, err)
|
|
defer func() { Conductor.LogRemoteCall(context, DONE, source, input, result, err) }()
|
|
|
|
commandResult, err := Conductor.GetActor(input.Username, context.Identity())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
var outputIcon *ActivityPubMedia = nil
|
|
if commandResult.Icon() != nil {
|
|
outputIcon = &ActivityPubMedia{
|
|
MediaType: commandResult.Icon().MediaType(),
|
|
Type: commandResult.Icon().Type(),
|
|
Url: commandResult.Icon().Url(),
|
|
Width: commandResult.Icon().Width(),
|
|
Height: commandResult.Icon().Height(),
|
|
}
|
|
}
|
|
|
|
var outputImage *ActivityPubMedia = nil
|
|
if commandResult.Image() != nil {
|
|
outputImage = &ActivityPubMedia{
|
|
MediaType: commandResult.Image().MediaType(),
|
|
Type: commandResult.Image().Type(),
|
|
Url: commandResult.Image().Url(),
|
|
Width: commandResult.Image().Width(),
|
|
Height: commandResult.Image().Height(),
|
|
}
|
|
}
|
|
|
|
var outputPublicKey *ActivityPubPublicKey = nil
|
|
if commandResult.PublicKey() != nil {
|
|
outputPublicKey = &ActivityPubPublicKey{
|
|
Id: commandResult.PublicKey().Id(),
|
|
Owner: commandResult.PublicKey().Owner(),
|
|
PublicKeyPem: commandResult.PublicKey().PublicKeyPem(),
|
|
}
|
|
}
|
|
|
|
result = context.ResultContainer().(*GetActorResult)
|
|
result.Context = commandResult.Context()
|
|
result.Id = commandResult.Id()
|
|
result.Followers = commandResult.Followers()
|
|
result.Following = commandResult.Following()
|
|
result.Inbox = commandResult.Inbox()
|
|
result.Outbox = commandResult.Outbox()
|
|
result.Name = commandResult.Name()
|
|
result.PreferredUsername = commandResult.PreferredUsername()
|
|
result.Type = commandResult.Type()
|
|
result.Url = commandResult.Url()
|
|
result.Icon = outputIcon
|
|
result.Image = outputImage
|
|
result.PublicKey = outputPublicKey
|
|
result.Summary = commandResult.Summary()
|
|
result.Published = commandResult.Published()
|
|
return result, nil
|
|
}
|