Merge pull request #178 from Infisical/new-routing

Create route and controller v1/v2 folder structure separation
This commit is contained in:
BlackMagiq
2022-12-26 21:07:46 -05:00
committed by GitHub
45 changed files with 161 additions and 162 deletions

View File

@@ -14,27 +14,27 @@ import { apiLimiter } from './helpers/rateLimiter';
import { import {
workspace as eeWorkspaceRouter, workspace as eeWorkspaceRouter,
secret as eeSecretRouter secret as eeSecretRouter
} from './ee/routes'; } from './ee/routes/v1';
import { import {
signup as signupRouter, signup as v1SignupRouter,
auth as authRouter, auth as v1AuthRouter,
bot as botRouter, bot as v1BotRouter,
organization as organizationRouter, organization as v1OrganizationRouter,
workspace as workspaceRouter, workspace as v1WorkspaceRouter,
membershipOrg as membershipOrgRouter, membershipOrg as v1MembershipOrgRouter,
membership as membershipRouter, membership as v1MembershipRouter,
key as keyRouter, key as v1KeyRouter,
inviteOrg as inviteOrgRouter, inviteOrg as v1InviteOrgRouter,
user as userRouter, user as v1UserRouter,
userAction as userActionRouter, userAction as v1UserActionRouter,
secret as secretRouter, secret as v1SecretRouter,
serviceToken as serviceTokenRouter, serviceToken as v1ServiceTokenRouter,
password as passwordRouter, password as v1PasswordRouter,
stripe as stripeRouter, stripe as v1StripeRouter,
integration as integrationRouter, integration as v1IntegrationRouter,
integrationAuth as integrationAuthRouter integrationAuth as v1IntegrationAuthRouter
} from './routes'; } from './routes/v1';
import { getLogger } from './utils/logger'; import { getLogger } from './utils/logger';
import { RouteNotFoundError } from './utils/errors'; import { RouteNotFoundError } from './utils/errors';
@@ -63,29 +63,28 @@ if (NODE_ENV === 'production') {
app.use(helmet()); app.use(helmet());
} }
// /ee routers // (EE) routers
app.use('/api/v1/secret', eeSecretRouter); app.use('/api/v1/secret', eeSecretRouter);
app.use('/api/v1/workspace', eeWorkspaceRouter); app.use('/api/v1/workspace', eeWorkspaceRouter);
// routers // v1 routes
app.use('/api/v1/signup', signupRouter); app.use('/api/v1/signup', v1SignupRouter);
app.use('/api/v1/auth', authRouter); app.use('/api/v1/auth', v1AuthRouter);
app.use('/api/v1/bot', botRouter); app.use('/api/v1/bot', v1BotRouter);
app.use('/api/v1/user', userRouter); app.use('/api/v1/user', v1UserRouter);
app.use('/api/v1/user-action', userActionRouter); app.use('/api/v1/user-action', v1UserActionRouter);
app.use('/api/v1/organization', organizationRouter); app.use('/api/v1/organization', v1OrganizationRouter);
app.use('/api/v1/workspace', workspaceRouter); app.use('/api/v1/workspace', v1WorkspaceRouter);
app.use('/api/v1/membership-org', membershipOrgRouter); app.use('/api/v1/membership-org', v1MembershipOrgRouter);
app.use('/api/v1/membership', membershipRouter); app.use('/api/v1/membership', v1MembershipRouter);
app.use('/api/v1/key', keyRouter); app.use('/api/v1/key', v1KeyRouter);
app.use('/api/v1/invite-org', inviteOrgRouter); app.use('/api/v1/invite-org', v1InviteOrgRouter);
app.use('/api/v1/secret', secretRouter); app.use('/api/v1/secret', v1SecretRouter);
app.use('/api/v1/service-token', serviceTokenRouter); app.use('/api/v1/service-token', v1ServiceTokenRouter);
app.use('/api/v1/password', passwordRouter); app.use('/api/v1/password', v1PasswordRouter);
app.use('/api/v1/stripe', stripeRouter); app.use('/api/v1/stripe', v1StripeRouter);
app.use('/api/v1/integration', integrationRouter); app.use('/api/v1/integration', v1IntegrationRouter);
app.use('/api/v1/integration-auth', integrationAuthRouter); app.use('/api/v1/integration-auth', v1IntegrationAuthRouter);
//* Handle unrouted requests and respond with proper error message as well as status code //* Handle unrouted requests and respond with proper error message as well as status code
app.use((req, res, next)=>{ app.use((req, res, next)=>{

View File

@@ -4,14 +4,14 @@ import jwt from 'jsonwebtoken';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import * as bigintConversion from 'bigint-conversion'; import * as bigintConversion from 'bigint-conversion';
const jsrp = require('jsrp'); const jsrp = require('jsrp');
import { User } from '../models'; import { User } from '../../models';
import { createToken, issueTokens, clearTokens } from '../helpers/auth'; import { createToken, issueTokens, clearTokens } from '../../helpers/auth';
import { import {
NODE_ENV, NODE_ENV,
JWT_AUTH_LIFETIME, JWT_AUTH_LIFETIME,
JWT_AUTH_SECRET, JWT_AUTH_SECRET,
JWT_REFRESH_SECRET JWT_REFRESH_SECRET
} from '../config'; } from '../../config';
declare module 'jsonwebtoken' { declare module 'jsonwebtoken' {
export interface UserIDJwtPayload extends jwt.JwtPayload { export interface UserIDJwtPayload extends jwt.JwtPayload {

View File

@@ -1,7 +1,7 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { Bot, BotKey } from '../models'; import { Bot, BotKey } from '../../models';
import { createBot } from '../helpers/bot'; import { createBot } from '../../helpers/bot';
interface BotKey { interface BotKey {
encryptedKey: string; encryptedKey: string;

View File

@@ -2,10 +2,10 @@ import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import axios from 'axios'; import axios from 'axios';
import { readFileSync } from 'fs'; import { readFileSync } from 'fs';
import { IntegrationAuth, Integration } from '../models'; import { IntegrationAuth, Integration } from '../../models';
import { INTEGRATION_SET, INTEGRATION_OPTIONS, ENV_DEV } from '../variables'; import { INTEGRATION_SET, INTEGRATION_OPTIONS, ENV_DEV } from '../../variables';
import { IntegrationService } from '../services'; import { IntegrationService } from '../../services';
import { getApps, revokeAccess } from '../integrations'; import { getApps, revokeAccess } from '../../integrations';
export const getIntegrationOptions = async ( export const getIntegrationOptions = async (
req: Request, req: Request,

View File

@@ -1,9 +1,9 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import { readFileSync } from 'fs'; import { readFileSync } from 'fs';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { Integration, Bot, BotKey } from '../models'; import { Integration, Bot, BotKey } from '../../models';
import { EventService } from '../services'; import { EventService } from '../../services';
import { eventPushSecrets } from '../events'; import { eventPushSecrets } from '../../events';
interface Key { interface Key {
encryptedKey: string; encryptedKey: string;

View File

@@ -1,8 +1,8 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { Key } from '../models'; import { Key } from '../../models';
import { findMembership } from '../helpers/membership'; import { findMembership } from '../../helpers/membership';
import { GRANTED } from '../variables'; import { GRANTED } from '../../variables';
/** /**
* Add (encrypted) copy of workspace key for workspace with id [workspaceId] for user with * Add (encrypted) copy of workspace key for workspace with id [workspaceId] for user with

View File

@@ -1,13 +1,13 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { Membership, MembershipOrg, User, Key } from '../models'; import { Membership, MembershipOrg, User, Key } from '../../models';
import { import {
findMembership, findMembership,
deleteMembership as deleteMember deleteMembership as deleteMember
} from '../helpers/membership'; } from '../../helpers/membership';
import { sendMail } from '../helpers/nodemailer'; import { sendMail } from '../../helpers/nodemailer';
import { SITE_URL } from '../config'; import { SITE_URL } from '../../config';
import { ADMIN, MEMBER, GRANTED, ACCEPTED } from '../variables'; import { ADMIN, MEMBER, GRANTED, ACCEPTED } from '../../variables';
/** /**
* Check that user is a member of workspace with id [workspaceId] * Check that user is a member of workspace with id [workspaceId]

View File

@@ -1,14 +1,14 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import crypto from 'crypto'; import crypto from 'crypto';
import { SITE_URL, JWT_SIGNUP_LIFETIME, JWT_SIGNUP_SECRET } from '../config'; import { SITE_URL, JWT_SIGNUP_LIFETIME, JWT_SIGNUP_SECRET } from '../../config';
import { MembershipOrg, Organization, User, Token } from '../models'; import { MembershipOrg, Organization, User, Token } from '../../models';
import { deleteMembershipOrg as deleteMemberFromOrg } from '../helpers/membershipOrg'; import { deleteMembershipOrg as deleteMemberFromOrg } from '../../helpers/membershipOrg';
import { checkEmailVerification } from '../helpers/signup'; import { checkEmailVerification } from '../../helpers/signup';
import { createToken } from '../helpers/auth'; import { createToken } from '../../helpers/auth';
import { updateSubscriptionOrgQuantity } from '../helpers/organization'; import { updateSubscriptionOrgQuantity } from '../../helpers/organization';
import { sendMail } from '../helpers/nodemailer'; import { sendMail } from '../../helpers/nodemailer';
import { OWNER, ADMIN, MEMBER, ACCEPTED, INVITED } from '../variables'; import { OWNER, ADMIN, MEMBER, ACCEPTED, INVITED } from '../../variables';
/** /**
* Delete organization membership with id [membershipOrgId] from organization * Delete organization membership with id [membershipOrgId] from organization
@@ -80,14 +80,14 @@ export const changeMembershipOrgRole = async (req: Request, res: Response) => {
// TODO // TODO
let membershipToChangeRole; let membershipToChangeRole;
try { // try {
} catch (err) { // } catch (err) {
Sentry.setUser({ email: req.user.email }); // Sentry.setUser({ email: req.user.email });
Sentry.captureException(err); // Sentry.captureException(err);
return res.status(400).send({ // return res.status(400).send({
message: 'Failed to change organization membership role' // message: 'Failed to change organization membership role'
}); // });
} // }
return res.status(200).send({ return res.status(200).send({
membershipOrg: membershipToChangeRole membershipOrg: membershipToChangeRole

View File

@@ -6,7 +6,7 @@ import {
STRIPE_PRODUCT_STARTER, STRIPE_PRODUCT_STARTER,
STRIPE_PRODUCT_PRO, STRIPE_PRODUCT_PRO,
STRIPE_PRODUCT_CARD_AUTH STRIPE_PRODUCT_CARD_AUTH
} from '../config'; } from '../../config';
import Stripe from 'stripe'; import Stripe from 'stripe';
const stripe = new Stripe(STRIPE_SECRET_KEY, { const stripe = new Stripe(STRIPE_SECRET_KEY, {
@@ -18,10 +18,10 @@ import {
Organization, Organization,
Workspace, Workspace,
IncidentContactOrg IncidentContactOrg
} from '../models'; } from '../../models';
import { createOrganization as create } from '../helpers/organization'; import { createOrganization as create } from '../../helpers/organization';
import { addMembershipsOrg } from '../helpers/membershipOrg'; import { addMembershipsOrg } from '../../helpers/membershipOrg';
import { OWNER, ACCEPTED } from '../variables'; import { OWNER, ACCEPTED } from '../../variables';
const productToPriceMap = { const productToPriceMap = {
starter: STRIPE_PRODUCT_STARTER, starter: STRIPE_PRODUCT_STARTER,

View File

@@ -1,13 +1,14 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import crypto from 'crypto'; import crypto from 'crypto';
// eslint-disable-next-line @typescript-eslint/no-var-requires
const jsrp = require('jsrp'); const jsrp = require('jsrp');
import * as bigintConversion from 'bigint-conversion'; import * as bigintConversion from 'bigint-conversion';
import { User, Token, BackupPrivateKey } from '../models'; import { User, Token, BackupPrivateKey } from '../../models';
import { checkEmailVerification } from '../helpers/signup'; import { checkEmailVerification } from '../../helpers/signup';
import { createToken } from '../helpers/auth'; import { createToken } from '../../helpers/auth';
import { sendMail } from '../helpers/nodemailer'; import { sendMail } from '../../helpers/nodemailer';
import { JWT_SIGNUP_LIFETIME, JWT_SIGNUP_SECRET, SITE_URL } from '../config'; import { JWT_SIGNUP_LIFETIME, JWT_SIGNUP_SECRET, SITE_URL } from '../../config';
const clientPublicKeys: any = {}; const clientPublicKeys: any = {};

View File

@@ -1,16 +1,16 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { Key, Secret } from '../models'; import { Key, Secret } from '../../models';
import { import {
pushSecrets as push, pushSecrets as push,
pullSecrets as pull, pullSecrets as pull,
reformatPullSecrets reformatPullSecrets
} from '../helpers/secret'; } from '../../helpers/secret';
import { pushKeys } from '../helpers/key'; import { pushKeys } from '../../helpers/key';
import { eventPushSecrets } from '../events'; import { eventPushSecrets } from '../../events';
import { EventService } from '../services'; import { EventService } from '../../services';
import { ENV_SET } from '../variables'; import { ENV_SET } from '../../variables';
import { postHogClient } from '../services'; import { postHogClient } from '../../services';
interface PushSecret { interface PushSecret {
ciphertextKey: string; ciphertextKey: string;

View File

@@ -1,8 +1,8 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import { ServiceToken } from '../models'; import { ServiceToken } from '../../models';
import { createToken } from '../helpers/auth'; import { createToken } from '../../helpers/auth';
import { ENV_SET } from '../variables'; import { ENV_SET } from '../../variables';
import { JWT_SERVICE_SECRET } from '../config'; import { JWT_SERVICE_SECRET } from '../../config';
/** /**
* Return service token on request * Return service token on request

View File

@@ -1,15 +1,15 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { NODE_ENV, JWT_SIGNUP_LIFETIME, JWT_SIGNUP_SECRET } from '../config'; import { NODE_ENV, JWT_SIGNUP_LIFETIME, JWT_SIGNUP_SECRET } from '../../config';
import { User, MembershipOrg } from '../models'; import { User, MembershipOrg } from '../../models';
import { completeAccount } from '../helpers/user'; import { completeAccount } from '../../helpers/user';
import { import {
sendEmailVerification, sendEmailVerification,
checkEmailVerification, checkEmailVerification,
initializeDefaultOrg initializeDefaultOrg
} from '../helpers/signup'; } from '../../helpers/signup';
import { issueTokens, createToken } from '../helpers/auth'; import { issueTokens, createToken } from '../../helpers/auth';
import { INVITED, ACCEPTED } from '../variables'; import { INVITED, ACCEPTED } from '../../variables';
import axios from 'axios'; import axios from 'axios';
/** /**

View File

@@ -1,6 +1,6 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { UserAction } from '../models'; import { UserAction } from '../../models';
/** /**
* Add user action [action] * Add user action [action]

View File

@@ -8,13 +8,13 @@ import {
IntegrationAuth, IntegrationAuth,
IUser, IUser,
ServiceToken, ServiceToken,
} from '../models'; } from '../../models';
import { import {
createWorkspace as create, createWorkspace as create,
deleteWorkspace as deleteWork deleteWorkspace as deleteWork
} from '../helpers/workspace'; } from '../../helpers/workspace';
import { addMemberships } from '../helpers/membership'; import { addMemberships } from '../../helpers/membership';
import { ADMIN, COMPLETED, GRANTED } from '../variables'; import { ADMIN, COMPLETED, GRANTED } from '../../variables';
/** /**
* Return public keys of members of workspace with id [workspaceId] * Return public keys of members of workspace with id [workspaceId]

View File

@@ -1,6 +1,6 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { SecretVersion } from '../models'; import { SecretVersion } from '../../models';
/** /**
* Return secret versions for secret with id [secretId] * Return secret versions for secret with id [secretId]

View File

@@ -1,7 +1,7 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import Stripe from 'stripe'; import Stripe from 'stripe';
import { STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET } from '../config'; import { STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET } from '../../../config';
const stripe = new Stripe(STRIPE_SECRET_KEY, { const stripe = new Stripe(STRIPE_SECRET_KEY, {
apiVersion: '2022-08-01' apiVersion: '2022-08-01'
}); });

View File

@@ -1,6 +1,6 @@
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import * as Sentry from '@sentry/node'; import * as Sentry from '@sentry/node';
import { SecretSnapshot } from '../models'; import { SecretSnapshot } from '../../models';
/** /**
* Return secret snapshots for workspace with id [workspaceId] * Return secret snapshots for workspace with id [workspaceId]

View File

@@ -4,10 +4,10 @@ import {
requireAuth, requireAuth,
requireWorkspaceAuth, requireWorkspaceAuth,
validateRequest validateRequest
} from '../../middleware'; } from '../../../middleware';
import { body, query, param } from 'express-validator'; import { body, query, param } from 'express-validator';
import { secretController } from '../controllers'; import { secretController } from '../../controllers/v1';
import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../variables'; import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../../variables';
router.get( router.get(
'/:secretId/secret-versions', '/:secretId/secret-versions',

View File

@@ -1,6 +1,6 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { stripeController } from '../controllers'; import { stripeController } from '../../controllers/v1';
router.post('/webhook', stripeController.handleWebhook); router.post('/webhook', stripeController.handleWebhook);

View File

@@ -4,10 +4,10 @@ import {
requireAuth, requireAuth,
requireWorkspaceAuth, requireWorkspaceAuth,
validateRequest validateRequest
} from '../../middleware'; } from '../../../middleware';
import { param, query } from 'express-validator'; import { param, query } from 'express-validator';
import { ADMIN, MEMBER, GRANTED } from '../../variables'; import { ADMIN, MEMBER, GRANTED } from '../../../variables';
import { workspaceController } from '../controllers'; import { workspaceController } from '../../controllers/v1';
router.get( router.get(
'/:workspaceId/secret-snapshots', '/:workspaceId/secret-snapshots',

View File

@@ -21,7 +21,6 @@ import {
CLIENT_SECRET_NETLIFY, CLIENT_SECRET_NETLIFY,
CLIENT_SECRET_GITHUB CLIENT_SECRET_GITHUB
} from '../config'; } from '../config';
import { user } from '../routes';
interface ExchangeCodeHerokuResponse { interface ExchangeCodeHerokuResponse {
token_type: string; token_type: string;

View File

@@ -1,9 +1,9 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { body } from 'express-validator'; import { body } from 'express-validator';
import { requireAuth, validateRequest } from '../middleware'; import { requireAuth, validateRequest } from '../../middleware';
import { authController } from '../controllers'; import { authController } from '../../controllers/v1';
import { loginLimiter } from '../helpers/rateLimiter'; import { loginLimiter } from '../../helpers/rateLimiter';
router.post('/token', validateRequest, authController.getNewToken); router.post('/token', validateRequest, authController.getNewToken);

View File

@@ -6,9 +6,9 @@ import {
requireBotAuth, requireBotAuth,
requireWorkspaceAuth, requireWorkspaceAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { botController } from '../controllers'; import { botController } from '../../controllers/v1';
import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../variables'; import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../variables';
router.get( router.get(
'/:workspaceId', '/:workspaceId',

View File

@@ -4,10 +4,10 @@ import {
requireAuth, requireAuth,
requireIntegrationAuth, requireIntegrationAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { ADMIN, MEMBER, GRANTED } from '../variables'; import { ADMIN, MEMBER, GRANTED } from '../../variables';
import { body, param } from 'express-validator'; import { body, param } from 'express-validator';
import { integrationController } from '../controllers'; import { integrationController } from '../../controllers/v1';
router.patch( router.patch(
'/:integrationId', '/:integrationId',

View File

@@ -6,9 +6,9 @@ import {
requireWorkspaceAuth, requireWorkspaceAuth,
requireIntegrationAuthorizationAuth, requireIntegrationAuthorizationAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { ADMIN, MEMBER, GRANTED } from '../variables'; import { ADMIN, MEMBER, GRANTED } from '../../variables';
import { integrationAuthController } from '../controllers'; import { integrationAuthController } from '../../controllers/v1';
router.get( router.get(
'/integration-options', '/integration-options',

View File

@@ -1,8 +1,8 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { body } from 'express-validator'; import { body } from 'express-validator';
import { requireAuth, validateRequest } from '../middleware'; import { requireAuth, validateRequest } from '../../middleware';
import { membershipOrgController } from '../controllers'; import { membershipOrgController } from '../../controllers/v1';
router.post( router.post(
'/signup', '/signup',

View File

@@ -4,10 +4,10 @@ import {
requireAuth, requireAuth,
requireWorkspaceAuth, requireWorkspaceAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { body, param } from 'express-validator'; import { body, param } from 'express-validator';
import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../variables'; import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../variables';
import { keyController } from '../controllers'; import { keyController } from '../../controllers/v1';
router.post( router.post(
'/:workspaceId', '/:workspaceId',

View File

@@ -1,8 +1,8 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { body, param } from 'express-validator'; import { body, param } from 'express-validator';
import { requireAuth, validateRequest } from '../middleware'; import { requireAuth, validateRequest } from '../../middleware';
import { membershipController } from '../controllers'; import { membershipController } from '../../controllers/v1';
router.get( // used for CLI (deprecate) router.get( // used for CLI (deprecate)
'/:workspaceId/connect', '/:workspaceId/connect',

View File

@@ -1,8 +1,8 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { param } from 'express-validator'; import { param } from 'express-validator';
import { requireAuth, validateRequest } from '../middleware'; import { requireAuth, validateRequest } from '../../middleware';
import { membershipOrgController } from '../controllers'; import { membershipOrgController } from '../../controllers/v1';
router.post( router.post(
// TODO // TODO

View File

@@ -5,9 +5,9 @@ import {
requireAuth, requireAuth,
requireOrganizationAuth, requireOrganizationAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { OWNER, ADMIN, MEMBER, ACCEPTED } from '../variables'; import { OWNER, ADMIN, MEMBER, ACCEPTED } from '../../variables';
import { organizationController } from '../controllers'; import { organizationController } from '../../controllers/v1';
router.get( router.get(
'/', '/',

View File

@@ -1,9 +1,9 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { body } from 'express-validator'; import { body } from 'express-validator';
import { requireAuth, requireSignupAuth, validateRequest } from '../middleware'; import { requireAuth, requireSignupAuth, validateRequest } from '../../middleware';
import { passwordController } from '../controllers'; import { passwordController } from '../../controllers/v1';
import { passwordLimiter } from '../helpers/rateLimiter'; import { passwordLimiter } from '../../helpers/rateLimiter';
router.post( router.post(
'/srp1', '/srp1',

View File

@@ -5,10 +5,10 @@ import {
requireWorkspaceAuth, requireWorkspaceAuth,
requireServiceTokenAuth, requireServiceTokenAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { body, query, param } from 'express-validator'; import { body, query, param } from 'express-validator';
import { secretController } from '../controllers'; import { secretController } from '../../controllers/v1';
import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../variables'; import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../variables';
router.post( router.post(
'/:workspaceId', '/:workspaceId',

View File

@@ -5,10 +5,10 @@ import {
requireWorkspaceAuth, requireWorkspaceAuth,
requireServiceTokenAuth, requireServiceTokenAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { body } from 'express-validator'; import { body } from 'express-validator';
import { ADMIN, MEMBER, GRANTED } from '../variables'; import { ADMIN, MEMBER, GRANTED } from '../../variables';
import { serviceTokenController } from '../controllers'; import { serviceTokenController } from '../../controllers/v1';
// TODO: revoke service token // TODO: revoke service token

View File

@@ -1,9 +1,9 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { body } from 'express-validator'; import { body } from 'express-validator';
import { requireSignupAuth, validateRequest } from '../middleware'; import { requireSignupAuth, validateRequest } from '../../middleware';
import { signupController } from '../controllers'; import { signupController } from '../../controllers/v1';
import { signupLimiter } from '../helpers/rateLimiter'; import { signupLimiter } from '../../helpers/rateLimiter';
router.post( router.post(
'/email/signup', '/email/signup',

View File

@@ -1,6 +1,6 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { stripeController } from '../controllers'; import { stripeController } from '../../controllers/v1';
router.post('/webhook', stripeController.handleWebhook); router.post('/webhook', stripeController.handleWebhook);

View File

@@ -1,7 +1,7 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { requireAuth } from '../middleware'; import { requireAuth } from '../../middleware';
import { userController } from '../controllers'; import { userController } from '../../controllers/v1';
router.get('/', requireAuth, userController.getUser); router.get('/', requireAuth, userController.getUser);

View File

@@ -1,8 +1,8 @@
import express from 'express'; import express from 'express';
const router = express.Router(); const router = express.Router();
import { requireAuth, validateRequest } from '../middleware'; import { requireAuth, validateRequest } from '../../middleware';
import { body, query } from 'express-validator'; import { body, query } from 'express-validator';
import { userActionController } from '../controllers'; import { userActionController } from '../../controllers/v1';
router.post( router.post(
'/', '/',

View File

@@ -5,9 +5,9 @@ import {
requireAuth, requireAuth,
requireWorkspaceAuth, requireWorkspaceAuth,
validateRequest validateRequest
} from '../middleware'; } from '../../middleware';
import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../variables'; import { ADMIN, MEMBER, COMPLETED, GRANTED } from '../../variables';
import { workspaceController, membershipController } from '../controllers'; import { workspaceController, membershipController } from '../../controllers/v1';
router.get( router.get(
'/:workspaceId/keys', '/:workspaceId/keys',