From c9617232d5eeced643b510c108384619a7fc79b0 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 15 Dec 2022 19:51:49 +0300 Subject: Extract user to actor conversion code into Converter --- .../activity/converters/UserToActorConverter.java | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main/java/com/juick/www/api/activity/converters/UserToActorConverter.java (limited to 'src/main/java/com/juick/www/api/activity/converters') diff --git a/src/main/java/com/juick/www/api/activity/converters/UserToActorConverter.java b/src/main/java/com/juick/www/api/activity/converters/UserToActorConverter.java new file mode 100644 index 00000000..405c27ab --- /dev/null +++ b/src/main/java/com/juick/www/api/activity/converters/UserToActorConverter.java @@ -0,0 +1,48 @@ +package com.juick.www.api.activity.converters; + +import org.springframework.core.convert.converter.Converter; + +import com.juick.ActivityPubManager; +import com.juick.KeystoreManager; +import com.juick.model.User; +import com.juick.www.WebApp; +import com.juick.www.api.activity.model.Context; +import com.juick.www.api.activity.model.objects.Actor; +import com.juick.www.api.activity.model.objects.Application; +import com.juick.www.api.activity.model.objects.Image; +import com.juick.www.api.activity.model.objects.Key; +import com.juick.www.api.activity.model.objects.Person; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class UserToActorConverter implements Converter { + + private ActivityPubManager activityPubManager; + private KeystoreManager keystoreManager; + private WebApp webApp; + + @Override + public Actor convert(User user) { + Actor profile = user.isService() ? new Application() : new Person(); + profile.setId(activityPubManager.personUri(user)); + profile.setUrl(activityPubManager.personWebUri(user)); + profile.setName(user.getName()); + profile.setPreferredUsername(user.getName()); + Key publicKey = new Key(); + publicKey.setId(profile.getId() + "#main-key"); + publicKey.setOwner(profile.getId()); + publicKey.setPublicKeyPem(keystoreManager.getPublicKeyPem()); + profile.setPublicKey(publicKey); + profile.setInbox(activityPubManager.inboxUri()); + profile.setOutbox(activityPubManager.outboxUri(user)); + profile.setFollowers(activityPubManager.followersUri(user)); + profile.setFollowing(activityPubManager.followingUri(user)); + Image avatar = new Image(); + avatar.setUrl(webApp.getAvatarUrl(user)); + avatar.setMediaType("image/png"); + profile.setIcon(avatar); + return (Actor) Context.build(profile); + } + +} -- cgit v1.2.3