pub fn serve_objects<D, R, V, E>(
config: Config,
repo: R,
verifier: V,
signature_config: SignatureConfig,
require_signature: bool,
) -> impl FnOnce(&mut ServiceConfig)where
D: Dereference + From<Url> + 'static,
<D as Dereference>::Output: Serialize,
R: Repo + 'static,
V: RepoFactory + SessionFactory + PublicKeyRepoFactory + PrivateKeyRepoFactory + VerifyFactory + Clone + 'static,
V::PrivateKeyRepo: PrivateKeyRepo<PrivateKey = V::Crypto>,
V::Crypto: PrivateKeyBuilder,
E: ResponseError + From<VerifyError> + From<<<V as VerifyFactory>::Verify as Verify>::Error> + From<PublicKeyError<<<V as PublicKeyRepoFactory>::PublicKeyRepo as PublicKeyRepo>::Error, <<V as RepoFactory>::Repo as Repo>::Error>> + From<<<V as PrivateKeyRepoFactory>::PrivateKeyRepo as PrivateKeyRepo>::Error> + From<<<V as RepoFactory>::Crypto as PrivateKeyBuilder>::Error> + 'static,
Expand description
Serve activitypub objects from a given endpoint
ⓘ
use actix_web::App;
use apub_actix_web::{serve_objects, SignatureConfig};
use url::Host;
// repository implements Repo
let repository = DatabaseRepo::new();
// verifier implements Repo and VerifyFactory
let verifier = DatabaseVerifier::new();
let config = Config {
local_host: Host::Domain(String::from("example.com")),
local_port: None,
scheme: String::from("https://"),
};
App::new()
.service(
web::scope("/activites")
.configure(serve_objects::<ObjectId<A>, _, _, MyError>(
config,
repository,
verifier,
SignatureConfig::default(),
true,
))
);