DEV Community

Cover image for Medusa using services in subscribers
Chris Bongers
Chris Bongers

Posted on • Originally published at daily-dev-tips.com

4 1

Medusa using services in subscribers

We first looked at custom subscribers for medusa.
And before that, we created our first custom service.

Let's look at how we can combine the two for maximum flexibility.

Note: If you haven't read the above-linked articles, please read those first.

Adding a custom service to the subscriber

The process here will be very similar to injecting services, but how we do it is slightly different.

Open up your subscriber file and start by declaring the service you want to inject.

class ProductNotifierSubscriber {
    translateService;

    constructor({ translateService, eventBusService }) {
        this.translateService = translateService;
        eventBusService.subscribe("product.created", this.handleProduct);
    }
}
Enter fullscreen mode Exit fullscreen mode

As you can see, we declare the translateService our custom service. Then inside the constructor, we assign it to the variable, gaining access to it in this file.

To use it, we can do the following:

handleProduct = async (data) => {
    this.translateService.translateProduct(data.id).then((title) => {
        console.log("New product title: " + title)
    })
};
Enter fullscreen mode Exit fullscreen mode

And that's precisely how we can attach our custom service to fire off inside the subscriber.

Product notifier in medusa

There is no limit to how many services you can inject, but be aware they might bloat your subscribers.

Thank you for reading, and let's connect!

Thank you for reading my blog. Feel free to subscribe to my email newsletter and connect on Facebook or Twitter

SurveyJS custom survey software

Build Your Own Forms without Manual Coding

SurveyJS UI libraries let you build a JSON-based form management system that integrates with any backend, giving you full control over your data with no user limits. Includes support for custom question types, skip logic, an integrated CSS editor, PDF export, real-time analytics, and more.

Learn more

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay