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