From 37d14b16d5d2827d158cd3c728efa14462952bd1 Mon Sep 17 00:00:00 2001 From: Jonathan Barrow Date: Sun, 23 Apr 2023 19:51:58 -0400 Subject: [PATCH] split api and discovery services --- src/server.ts | 6 ++- src/services/api/index.ts | 35 ++++++++++++++++ .../routes/communities.ts | 0 .../routes/friend_messages.ts} | 0 .../{miiverse-api => api}/routes/people.ts | 0 .../routes/post.ts => api/routes/posts.ts} | 0 .../routes/ping.ts => api/routes/status.ts} | 0 .../{miiverse-api => api}/routes/topics.ts | 0 .../{miiverse-api => api}/routes/users.ts | 0 src/services/discovery/index.ts | 20 ++++++++++ .../routes/discovery.ts | 0 src/services/miiverse-api/index.ts | 40 ------------------- 12 files changed, 59 insertions(+), 42 deletions(-) create mode 100644 src/services/api/index.ts rename src/services/{miiverse-api => api}/routes/communities.ts (100%) rename src/services/{miiverse-api/routes/message.ts => api/routes/friend_messages.ts} (100%) rename src/services/{miiverse-api => api}/routes/people.ts (100%) rename src/services/{miiverse-api/routes/post.ts => api/routes/posts.ts} (100%) rename src/services/{miiverse-api/routes/ping.ts => api/routes/status.ts} (100%) rename src/services/{miiverse-api => api}/routes/topics.ts (100%) rename src/services/{miiverse-api => api}/routes/users.ts (100%) create mode 100644 src/services/discovery/index.ts rename src/services/{miiverse-api => discovery}/routes/discovery.ts (100%) delete mode 100644 src/services/miiverse-api/index.ts diff --git a/src/server.ts b/src/server.ts index 125baf6..3b8eefa 100644 --- a/src/server.ts +++ b/src/server.ts @@ -8,7 +8,8 @@ import { LOG_INFO, LOG_SUCCESS } from '@/logger'; import xmlparser from '@/middleware/xml-parser'; import auth from '@/middleware/auth'; -import miiverse from '@/services/miiverse-api'; +import discovery from '@/services/discovery'; +import api from '@/services/api'; import { config } from '@/config-manager'; @@ -32,7 +33,8 @@ app.use(xmlparser); app.use(auth); // import the servers into one -app.use(miiverse); +app.use(discovery); +app.use(api); // 404 handler LOG_INFO('Creating 404 status handler'); diff --git a/src/services/api/index.ts b/src/services/api/index.ts new file mode 100644 index 0000000..005cf53 --- /dev/null +++ b/src/services/api/index.ts @@ -0,0 +1,35 @@ +import express from 'express'; +import subdomain from 'express-subdomain'; +import { LOG_INFO } from '@/logger'; + +import postsHandlers from '@/services/api/routes/posts'; +import friendMessagesHandlers from '@/services/api/routes/friend_messages'; +import communitiesHandlers from '@/services/api/routes/communities'; +import peopleHandlers from '@/services/api/routes/people'; +import topicsHandlers from '@/services/api/routes/topics'; +import usersHandlers from '@/services/api/routes/users'; +import statusHandlers from '@/services/api/routes/status'; + +// Main router for endpointsindex.js +const router = express.Router(); + +// Router to handle the subdomain restriction +const api = express.Router(); + +// Create subdomains +LOG_INFO('[MIIVERSE] Creating \'api\' subdomain'); +router.use(subdomain('api.olv', api)); +router.use(subdomain('api-test.olv', api)); +router.use(subdomain('api-dev.olv', api)); + +// Setup routes +api.use('/v1/posts', postsHandlers); +api.use('/v1/posts.search', postsHandlers); +api.use('/v1/friend_messages', friendMessagesHandlers); +api.use('/v1/communities/', communitiesHandlers); +api.use('/v1/people/', peopleHandlers); +api.use('/v1/topics/', topicsHandlers); +api.use('/v1/users/', usersHandlers); +api.use('/v1/status/', statusHandlers); + +export default router; \ No newline at end of file diff --git a/src/services/miiverse-api/routes/communities.ts b/src/services/api/routes/communities.ts similarity index 100% rename from src/services/miiverse-api/routes/communities.ts rename to src/services/api/routes/communities.ts diff --git a/src/services/miiverse-api/routes/message.ts b/src/services/api/routes/friend_messages.ts similarity index 100% rename from src/services/miiverse-api/routes/message.ts rename to src/services/api/routes/friend_messages.ts diff --git a/src/services/miiverse-api/routes/people.ts b/src/services/api/routes/people.ts similarity index 100% rename from src/services/miiverse-api/routes/people.ts rename to src/services/api/routes/people.ts diff --git a/src/services/miiverse-api/routes/post.ts b/src/services/api/routes/posts.ts similarity index 100% rename from src/services/miiverse-api/routes/post.ts rename to src/services/api/routes/posts.ts diff --git a/src/services/miiverse-api/routes/ping.ts b/src/services/api/routes/status.ts similarity index 100% rename from src/services/miiverse-api/routes/ping.ts rename to src/services/api/routes/status.ts diff --git a/src/services/miiverse-api/routes/topics.ts b/src/services/api/routes/topics.ts similarity index 100% rename from src/services/miiverse-api/routes/topics.ts rename to src/services/api/routes/topics.ts diff --git a/src/services/miiverse-api/routes/users.ts b/src/services/api/routes/users.ts similarity index 100% rename from src/services/miiverse-api/routes/users.ts rename to src/services/api/routes/users.ts diff --git a/src/services/discovery/index.ts b/src/services/discovery/index.ts new file mode 100644 index 0000000..13ff26a --- /dev/null +++ b/src/services/discovery/index.ts @@ -0,0 +1,20 @@ +import express from 'express'; +import subdomain from 'express-subdomain'; +import { LOG_INFO } from '@/logger'; + +import discoveryHandlers from '@/services/discovery/routes/discovery'; + +// Main router for endpointsindex.js +const router = express.Router(); + +// Router to handle the subdomain restriction +const discovery = express.Router(); + +// Create subdomains +LOG_INFO('[MIIVERSE] Creating \'discovery\' subdomain'); +router.use(subdomain('discovery.olv', discovery)); + +// Setup routes +discovery.use('/v1/endpoint', discoveryHandlers); + +export default router; \ No newline at end of file diff --git a/src/services/miiverse-api/routes/discovery.ts b/src/services/discovery/routes/discovery.ts similarity index 100% rename from src/services/miiverse-api/routes/discovery.ts rename to src/services/discovery/routes/discovery.ts diff --git a/src/services/miiverse-api/index.ts b/src/services/miiverse-api/index.ts deleted file mode 100644 index 993c66a..0000000 --- a/src/services/miiverse-api/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -import express from 'express'; -import subdomain from 'express-subdomain'; -import { LOG_INFO } from '@/logger'; - -import DISCOVERY from '@/services/miiverse-api/routes/discovery'; -import POST from '@/services/miiverse-api/routes/post'; -import MESSAGE from '@/services/miiverse-api/routes/message'; -import COMMUNITY from '@/services/miiverse-api/routes/communities'; -import PEOPLE from '@/services/miiverse-api/routes/people'; -import TOPICS from '@/services/miiverse-api/routes/topics'; -import USERS from '@/services/miiverse-api/routes/users'; -import PING from '@/services/miiverse-api/routes/ping'; - -// Main router for endpointsindex.js -const router = express.Router(); - -// Router to handle the subdomain restriction -const discovery = express.Router(); -const api = express.Router(); - -// Create subdomains -LOG_INFO('[MIIVERSE] Creating \'discovery\' subdomain'); -router.use(subdomain('discovery.olv', discovery)); -LOG_INFO('[MIIVERSE] Creating \'api\' subdomain'); -router.use(subdomain('api.olv', api)); -router.use(subdomain('api-test.olv', api)); -router.use(subdomain('api-dev.olv', api)); - -// Setup routes -discovery.use('/v1/endpoint', DISCOVERY); -api.use('/v1/posts', POST); -api.use('/v1/posts.search', POST); -api.use('/v1/friend_messages', MESSAGE); -api.use('/v1/communities/', COMMUNITY); -api.use('/v1/people/', PEOPLE); -api.use('/v1/topics/', TOPICS); -api.use('/v1/users/', USERS); -api.use('/v1/status/', PING); - -export default router; \ No newline at end of file