import { Article } from "article/domain/articleEntity"; import { ArticleStore } from "article/domain/articleStore"; class FetchArticleUseCase { /* ------------------------------ Dependencies ------------------------------ */ _fetchArticleCallback: (id: string) => Promise
; _store: ArticleStore; /* -------------------------------------------------------------------------- */ constructor( fetchArticle: (id: string) => Promise
, store: ArticleStore, ) { this._fetchArticleCallback = fetchArticle; this._store = store; } /* ----------------------------- Implementation ----------------------------- */ async call(id: string): Promise
{ return this._fetchArticleCallback(id).then((article) => { if (article != null) { this._store.setArticle(article); } return article; }) } /* -------------------------------------------------------------------------- */ } export { FetchArticleUseCase };