This repository has no description
1import { InitiateOAuthSignInController } from '../../../../modules/user/infrastructure/http/controllers/InitiateOAuthSignInController';
2import { CompleteOAuthSignInController } from '../../../../modules/user/infrastructure/http/controllers/CompleteOAuthSignInController';
3import { RefreshAccessTokenController } from '../../../../modules/user/infrastructure/http/controllers/RefreshAccessTokenController';
4import { AddUrlToLibraryController } from '../../../../modules/cards/infrastructure/http/controllers/AddUrlToLibraryController';
5import { AddCardToLibraryController } from '../../../../modules/cards/infrastructure/http/controllers/AddCardToLibraryController';
6import { AddCardToCollectionController } from '../../../../modules/cards/infrastructure/http/controllers/AddCardToCollectionController';
7import { UpdateNoteCardController } from '../../../../modules/cards/infrastructure/http/controllers/UpdateNoteCardController';
8import { UpdateUrlCardAssociationsController } from '../../../../modules/cards/infrastructure/http/controllers/UpdateUrlCardAssociationsController';
9import { RemoveCardFromLibraryController } from '../../../../modules/cards/infrastructure/http/controllers/RemoveCardFromLibraryController';
10import { RemoveCardFromCollectionController } from '../../../../modules/cards/infrastructure/http/controllers/RemoveCardFromCollectionController';
11import { GetUrlMetadataController } from '../../../../modules/cards/infrastructure/http/controllers/GetUrlMetadataController';
12import { GetUrlCardViewController } from '../../../../modules/cards/infrastructure/http/controllers/GetUrlCardViewController';
13import { GetLibrariesForCardController } from '../../../../modules/cards/infrastructure/http/controllers/GetLibrariesForCardController';
14import { GetMyUrlCardsController } from '../../../../modules/cards/infrastructure/http/controllers/GetMyUrlCardsController';
15import { GetUserUrlCardsController } from '../../../../modules/cards/infrastructure/http/controllers/GetUserUrlCardsController';
16import { CreateCollectionController } from '../../../../modules/cards/infrastructure/http/controllers/CreateCollectionController';
17import { UpdateCollectionController } from '../../../../modules/cards/infrastructure/http/controllers/UpdateCollectionController';
18import { DeleteCollectionController } from '../../../../modules/cards/infrastructure/http/controllers/DeleteCollectionController';
19import { GetCollectionPageController } from '../../../../modules/cards/infrastructure/http/controllers/GetCollectionPageController';
20import { GetMyCollectionsController } from '../../../../modules/cards/infrastructure/http/controllers/GetMyCollectionsController';
21import { GetGlobalFeedController } from '../../../../modules/feeds/infrastructure/http/controllers/GetGlobalFeedController';
22import { GetSimilarUrlsForUrlController } from '../../../../modules/search/infrastructure/http/controllers/GetSimilarUrlsForUrlController';
23import { UseCases } from './UseCaseFactory';
24import { GetMyProfileController } from 'src/modules/cards/infrastructure/http/controllers/GetMyProfileController';
25import { GetUserProfileController } from 'src/modules/cards/infrastructure/http/controllers/GetUserProfileController';
26import { LoginWithAppPasswordController } from 'src/modules/user/infrastructure/http/controllers/LoginWithAppPasswordController';
27import { LogoutController } from 'src/modules/user/infrastructure/http/controllers/LogoutController';
28import { GenerateExtensionTokensController } from 'src/modules/user/infrastructure/http/controllers/GenerateExtensionTokensController';
29import { GetUserCollectionsController } from 'src/modules/cards/infrastructure/http/controllers/GetUserCollectionsController';
30import { GetCollectionPageByAtUriController } from 'src/modules/cards/infrastructure/http/controllers/GetCollectionPageByAtUriController';
31import { GetUrlStatusForMyLibraryController } from '../../../../modules/cards/infrastructure/http/controllers/GetUrlStatusForMyLibraryController';
32import { GetLibrariesForUrlController } from '../../../../modules/cards/infrastructure/http/controllers/GetLibrariesForUrlController';
33import { GetCollectionsForUrlController } from '../../../../modules/cards/infrastructure/http/controllers/GetCollectionsForUrlController';
34import { GetNoteCardsForUrlController } from '../../../../modules/cards/infrastructure/http/controllers/GetNoteCardsForUrlController';
35import { CookieService } from '../services/CookieService';
36
37export interface Controllers {
38 // User controllers
39 loginWithAppPasswordController: LoginWithAppPasswordController;
40 logoutController: LogoutController;
41 initiateOAuthSignInController: InitiateOAuthSignInController;
42 completeOAuthSignInController: CompleteOAuthSignInController;
43 getMyProfileController: GetMyProfileController;
44 getUserProfileController: GetUserProfileController;
45 refreshAccessTokenController: RefreshAccessTokenController;
46 generateExtensionTokensController: GenerateExtensionTokensController;
47 // Card controllers
48 addUrlToLibraryController: AddUrlToLibraryController;
49 addCardToLibraryController: AddCardToLibraryController;
50 addCardToCollectionController: AddCardToCollectionController;
51 updateNoteCardController: UpdateNoteCardController;
52 updateUrlCardAssociationsController: UpdateUrlCardAssociationsController;
53 removeCardFromLibraryController: RemoveCardFromLibraryController;
54 removeCardFromCollectionController: RemoveCardFromCollectionController;
55 getUrlMetadataController: GetUrlMetadataController;
56 getUrlCardViewController: GetUrlCardViewController;
57 getLibrariesForCardController: GetLibrariesForCardController;
58 getMyUrlCardsController: GetMyUrlCardsController;
59 getUserUrlCardsController: GetUserUrlCardsController;
60 createCollectionController: CreateCollectionController;
61 updateCollectionController: UpdateCollectionController;
62 deleteCollectionController: DeleteCollectionController;
63 getCollectionPageController: GetCollectionPageController;
64 getCollectionPageByAtUriController: GetCollectionPageByAtUriController;
65 getMyCollectionsController: GetMyCollectionsController;
66 getCollectionsController: GetUserCollectionsController;
67 getUrlStatusForMyLibraryController: GetUrlStatusForMyLibraryController;
68 getLibrariesForUrlController: GetLibrariesForUrlController;
69 getCollectionsForUrlController: GetCollectionsForUrlController;
70 getNoteCardsForUrlController: GetNoteCardsForUrlController;
71 // Feed controllers
72 getGlobalFeedController: GetGlobalFeedController;
73 // Search controllers
74 getSimilarUrlsForUrlController: GetSimilarUrlsForUrlController;
75}
76
77export class ControllerFactory {
78 static create(useCases: UseCases, cookieService: CookieService): Controllers {
79 return {
80 // User controllers
81 loginWithAppPasswordController: new LoginWithAppPasswordController(
82 useCases.loginWithAppPasswordUseCase,
83 cookieService,
84 ),
85 logoutController: new LogoutController(
86 useCases.logoutUseCase,
87 cookieService,
88 ),
89 initiateOAuthSignInController: new InitiateOAuthSignInController(
90 useCases.initiateOAuthSignInUseCase,
91 ),
92 completeOAuthSignInController: new CompleteOAuthSignInController(
93 useCases.completeOAuthSignInUseCase,
94 cookieService,
95 ),
96 getMyProfileController: new GetMyProfileController(
97 useCases.getProfileUseCase,
98 ),
99 getUserProfileController: new GetUserProfileController(
100 useCases.getProfileUseCase,
101 ),
102 refreshAccessTokenController: new RefreshAccessTokenController(
103 useCases.refreshAccessTokenUseCase,
104 cookieService,
105 ),
106 generateExtensionTokensController: new GenerateExtensionTokensController(
107 useCases.generateExtensionTokensUseCase,
108 ),
109
110 // Card controllers
111 addUrlToLibraryController: new AddUrlToLibraryController(
112 useCases.addUrlToLibraryUseCase,
113 ),
114 addCardToLibraryController: new AddCardToLibraryController(
115 useCases.addCardToLibraryUseCase,
116 ),
117 addCardToCollectionController: new AddCardToCollectionController(
118 useCases.addCardToCollectionUseCase,
119 ),
120 updateNoteCardController: new UpdateNoteCardController(
121 useCases.updateNoteCardUseCase,
122 ),
123 updateUrlCardAssociationsController:
124 new UpdateUrlCardAssociationsController(
125 useCases.updateUrlCardAssociationsUseCase,
126 ),
127 removeCardFromLibraryController: new RemoveCardFromLibraryController(
128 useCases.removeCardFromLibraryUseCase,
129 ),
130 removeCardFromCollectionController:
131 new RemoveCardFromCollectionController(
132 useCases.removeCardFromCollectionUseCase,
133 ),
134 getUrlMetadataController: new GetUrlMetadataController(
135 useCases.getUrlMetadataUseCase,
136 ),
137 getUrlCardViewController: new GetUrlCardViewController(
138 useCases.getUrlCardViewUseCase,
139 ),
140 getLibrariesForCardController: new GetLibrariesForCardController(
141 useCases.getLibrariesForCardUseCase,
142 ),
143 getMyUrlCardsController: new GetMyUrlCardsController(
144 useCases.getMyUrlCardsUseCase,
145 ),
146 getUserUrlCardsController: new GetUserUrlCardsController(
147 useCases.getMyUrlCardsUseCase,
148 ),
149 createCollectionController: new CreateCollectionController(
150 useCases.createCollectionUseCase,
151 ),
152 updateCollectionController: new UpdateCollectionController(
153 useCases.updateCollectionUseCase,
154 ),
155 deleteCollectionController: new DeleteCollectionController(
156 useCases.deleteCollectionUseCase,
157 ),
158 getCollectionPageController: new GetCollectionPageController(
159 useCases.getCollectionPageUseCase,
160 ),
161 getCollectionPageByAtUriController:
162 new GetCollectionPageByAtUriController(
163 useCases.getCollectionPageByAtUriUseCase,
164 ),
165 getMyCollectionsController: new GetMyCollectionsController(
166 useCases.getCollectionsUseCase,
167 ),
168 getCollectionsController: new GetUserCollectionsController(
169 useCases.getCollectionsUseCase,
170 ),
171 getUrlStatusForMyLibraryController:
172 new GetUrlStatusForMyLibraryController(
173 useCases.getUrlStatusForMyLibraryUseCase,
174 ),
175 getLibrariesForUrlController: new GetLibrariesForUrlController(
176 useCases.getLibrariesForUrlUseCase,
177 ),
178 getCollectionsForUrlController: new GetCollectionsForUrlController(
179 useCases.getCollectionsForUrlUseCase,
180 ),
181 getNoteCardsForUrlController: new GetNoteCardsForUrlController(
182 useCases.getNoteCardsForUrlUseCase,
183 ),
184
185 // Feed controllers
186 getGlobalFeedController: new GetGlobalFeedController(
187 useCases.getGlobalFeedUseCase,
188 ),
189 // Search controllers
190 getSimilarUrlsForUrlController: new GetSimilarUrlsForUrlController(
191 useCases.getSimilarUrlsForUrlUseCase,
192 ),
193 };
194 }
195}