Browse Source

split files into correct methods

pull/1250/head
Bernd Storath 11 months ago
parent
commit
6ca6b18db1
No known key found for this signature in database GPG Key ID: D6C85685A555540F
  1. 2
      package.json
  2. 2
      src/package.json
  3. 1
      src/server/api/lang.get.ts
  4. 1
      src/server/api/release.get.ts
  5. 9
      src/server/api/session.delete.ts
  6. 11
      src/server/api/session.get.ts
  7. 28
      src/server/api/session.post.ts
  8. 48
      src/server/api/session.ts
  9. 1
      src/server/api/ui-chart-type.get.ts
  10. 1
      src/server/api/ui-traffic-stats.get.ts
  11. 1
      src/server/api/wireguard/backup.get.ts
  12. 1
      src/server/api/wireguard/client/[clientId]/address.put.ts
  13. 1
      src/server/api/wireguard/client/[clientId]/configuration.get.ts
  14. 1
      src/server/api/wireguard/client/[clientId]/disable.post.ts
  15. 1
      src/server/api/wireguard/client/[clientId]/enable.post.ts
  16. 1
      src/server/api/wireguard/client/[clientId]/index.delete.ts
  17. 1
      src/server/api/wireguard/client/[clientId]/name.put.ts
  18. 1
      src/server/api/wireguard/client/[clientId]/qrcode.svg.get.ts
  19. 3
      src/server/api/wireguard/client/index.get.ts
  20. 5
      src/server/api/wireguard/client/index.post.ts
  21. 9
      src/server/api/wireguard/client/index.ts
  22. 1
      src/server/api/wireguard/restore.put.ts

2
package.json

@ -7,5 +7,5 @@
"sudostart": "sudo docker run --env WG_HOST=0.0.0.0 --name wg-easy --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" --mount type=bind,source=\"$(pwd)\"/config,target=/etc/wireguard -p 51820:51820/udp -p 51821:51821/tcp wg-easy",
"start": "docker run --env WG_HOST=0.0.0.0 --name wg-easy --cap-add=NET_ADMIN --cap-add=SYS_MODULE --sysctl=\"net.ipv4.conf.all.src_valid_mark=1\" --mount type=bind,source=\"$(pwd)\"/config,target=/etc/wireguard -p 51820:51820/udp -p 51821:51821/tcp wg-easy"
},
"packageManager": "pnpm@8.6.0"
"packageManager": "pnpm@9.6.0"
}

2
src/package.json

@ -41,5 +41,5 @@
"typescript": "^5.5.4",
"vue-tsc": "^2.0.29"
},
"packageManager": "pnpm@8.6.0"
"packageManager": "pnpm@9.6.0"
}

1
src/server/api/lang.ts → src/server/api/lang.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler((event) => {
assertMethod(event, 'GET');
setHeader(event, 'Content-Type', 'application/json');
return `"${LANG}"`;
});

1
src/server/api/release.ts → src/server/api/release.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler((event) => {
assertMethod(event, 'GET');
setHeader(event, 'Content-Type', 'application/json');
return RELEASE;
});

9
src/server/api/session.delete.ts

@ -0,0 +1,9 @@
export default defineEventHandler(async (event) => {
const session = await useSession(event, SESSION_CONFIG);
const sessionId = session.id;
await session.clear();
SERVER_DEBUG(`Deleted Session: ${sessionId}`);
return { success: true };
});

11
src/server/api/session.get.ts

@ -0,0 +1,11 @@
export default defineEventHandler(async (event) => {
const session = await useSession(event, SESSION_CONFIG);
const authenticated = REQUIRES_PASSWORD
? !!(session.data && session.data.authenticated)
: true;
return {
requiresPassword: REQUIRES_PASSWORD,
authenticated,
};
});

28
src/server/api/session.post.ts

@ -0,0 +1,28 @@
export default defineEventHandler(async (event) => {
const session = await useSession(event, SESSION_CONFIG);
const { password } = await readBody(event);
if (!REQUIRES_PASSWORD) {
// if no password is required, the API should never be called.
// Do not automatically authenticate the user.
throw createError({
status: 401,
message: 'Invalid state',
});
}
if (!isPasswordValid(password)) {
throw createError({
status: 401,
message: 'Incorrect Password',
});
}
const data = await session.update({
authenticated: true,
});
SERVER_DEBUG(`New Session: ${data.id}`);
return { success: true };
});

48
src/server/api/session.ts

@ -1,48 +0,0 @@
export default defineEventHandler(async (event) => {
if (isMethod(event, 'GET')) {
const session = await useSession(event, SESSION_CONFIG);
const authenticated = REQUIRES_PASSWORD
? !!(session.data && session.data.authenticated)
: true;
return {
requiresPassword: REQUIRES_PASSWORD,
authenticated,
};
} else if (isMethod(event, 'POST')) {
const session = await useSession(event, SESSION_CONFIG);
const { password } = await readBody(event);
if (!REQUIRES_PASSWORD) {
// if no password is required, the API should never be called.
// Do not automatically authenticate the user.
throw createError({
status: 401,
message: 'Invalid state',
});
}
if (!isPasswordValid(password)) {
throw createError({
status: 401,
message: 'Incorrect Password',
});
}
const data = await session.update({
authenticated: true,
});
SERVER_DEBUG(`New Session: ${data.id}`);
return { success: true };
} else if (isMethod(event, 'DELETE')) {
const session = await useSession(event, SESSION_CONFIG);
const sessionId = session.id;
await session.clear();
SERVER_DEBUG(`Deleted Session: ${sessionId}`);
return { success: true };
}
});

1
src/server/api/ui-chart-type.ts → src/server/api/ui-chart-type.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler((event) => {
assertMethod(event, 'GET');
setHeader(event, 'Content-Type', 'application/json');
return `"${UI_CHART_TYPE}"`;
});

1
src/server/api/ui-traffic-stats.ts → src/server/api/ui-traffic-stats.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler((event) => {
assertMethod(event, 'GET');
setHeader(event, 'Content-Type', 'application/json');
return `"${UI_TRAFFIC_STATS}"`;
});

1
src/server/api/wireguard/backup.ts → src/server/api/wireguard/backup.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'GET');
const config = await WireGuard.backupConfiguration();
setHeader(event, 'Content-Disposition', 'attachment; filename="wg0.json"');
setHeader(event, 'Content-Type', 'text/json');

1
src/server/api/wireguard/client/[clientId]/address.ts → src/server/api/wireguard/client/[clientId]/address.put.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'PUT');
const clientId = getRouterParam(event, 'clientId');
if (
clientId === '__proto__' ||

1
src/server/api/wireguard/client/[clientId]/configuration.ts → src/server/api/wireguard/client/[clientId]/configuration.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'GET');
const clientId = getRouterParam(event, 'clientId');
const client = await WireGuard.getClient({ clientId });
const config = await WireGuard.getClientConfiguration({ clientId });

1
src/server/api/wireguard/client/[clientId]/disable.ts → src/server/api/wireguard/client/[clientId]/disable.post.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'POST');
const clientId = getRouterParam(event, 'clientId');
if (
clientId === '__proto__' ||

1
src/server/api/wireguard/client/[clientId]/enable.ts → src/server/api/wireguard/client/[clientId]/enable.post.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'POST');
const clientId = getRouterParam(event, 'clientId');
if (
clientId === '__proto__' ||

1
src/server/api/wireguard/client/[clientId]/index.ts → src/server/api/wireguard/client/[clientId]/index.delete.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'DELETE');
const clientId = getRouterParam(event, 'clientId');
await WireGuard.deleteClient({ clientId });
return { success: true };

1
src/server/api/wireguard/client/[clientId]/name.ts → src/server/api/wireguard/client/[clientId]/name.put.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'PUT');
const clientId = getRouterParam(event, 'clientId');
if (
clientId === '__proto__' ||

1
src/server/api/wireguard/client/[clientId]/qrcode.svg.ts → src/server/api/wireguard/client/[clientId]/qrcode.svg.get.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'GET');
const clientId = getRouterParam(event, 'clientId');
const svg = await WireGuard.getClientQRCodeSVG({ clientId });
setHeader(event, 'Content-Type', 'image/svg+xml');

3
src/server/api/wireguard/client/index.get.ts

@ -0,0 +1,3 @@
export default defineEventHandler(() => {
return WireGuard.getClients();
});

5
src/server/api/wireguard/client/index.post.ts

@ -0,0 +1,5 @@
export default defineEventHandler(async (event) => {
const { name } = await readBody(event);
await WireGuard.createClient({ name });
return { success: true };
});

9
src/server/api/wireguard/client/index.ts

@ -1,9 +0,0 @@
export default defineEventHandler(async (event) => {
if (isMethod(event, 'GET')) {
return WireGuard.getClients();
} else if (isMethod(event, 'POST')) {
const { name } = await readBody(event);
await WireGuard.createClient({ name });
return { success: true };
}
});

1
src/server/api/wireguard/restore.ts → src/server/api/wireguard/restore.put.ts

@ -1,5 +1,4 @@
export default defineEventHandler(async (event) => {
assertMethod(event, 'PUT');
const { file } = await readBody(event);
await WireGuard.restoreConfiguration(file);
return { success: true };
Loading…
Cancel
Save