diff --git a/frontend/src/components/UsingRemoteResource.vue b/frontend/src/components/UsingRemoteResource.vue
deleted file mode 100644
index a33e327b..00000000
--- a/frontend/src/components/UsingRemoteResource.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/frontend/src/services/api-client/endpoints/delete-endpoint.ts b/frontend/src/services/api-client/endpoints/delete-endpoint.ts
deleted file mode 100644
index 0c01e55a..00000000
--- a/frontend/src/services/api-client/endpoints/delete-endpoint.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import {type Params, RestEndpoint} from "@/services/api-client/endpoints/rest-endpoint.ts";
-
-export class DeleteEndpoint extends RestEndpoint {
- readonly method = "GET";
-
- public delete(pathParams: PP, queryParams: QP): Promise {
- return super.request(pathParams, queryParams, undefined);
- }
-}
diff --git a/frontend/src/services/api-client/endpoints/get-endpoint.ts b/frontend/src/services/api-client/endpoints/get-endpoint.ts
deleted file mode 100644
index 4393e288..00000000
--- a/frontend/src/services/api-client/endpoints/get-endpoint.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import {type Params, RestEndpoint} from "@/services/api-client/endpoints/rest-endpoint.ts";
-
-export class GetEndpoint extends RestEndpoint {
- readonly method = "GET";
-
- public get(pathParams: PP, queryParams: QP): Promise {
- return super.request(pathParams, queryParams, undefined);
- }
-}
diff --git a/frontend/src/services/api-client/endpoints/get-html-endpoint.ts b/frontend/src/services/api-client/endpoints/get-html-endpoint.ts
deleted file mode 100644
index 9bb2e523..00000000
--- a/frontend/src/services/api-client/endpoints/get-html-endpoint.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import {type Params, RestEndpoint} from "@/services/api-client/endpoints/rest-endpoint.ts";
-
-export class GetHtmlEndpoint extends RestEndpoint {
- readonly method: "GET" | "POST" | "PUT" | "DELETE" = "GET";
-
- public get(pathParams: PP, queryParams: QP): Promise {
- return super.request(pathParams, queryParams, undefined, "document");
- }
-}
diff --git a/frontend/src/services/api-client/endpoints/post-endpoint.ts b/frontend/src/services/api-client/endpoints/post-endpoint.ts
deleted file mode 100644
index 9b5fd96f..00000000
--- a/frontend/src/services/api-client/endpoints/post-endpoint.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import {type Params, RestEndpoint} from "@/services/api-client/endpoints/rest-endpoint.ts";
-
-export class PostEndpoint extends RestEndpoint {
- readonly method = "POST";
-
- public post(pathParams: PP, queryParams: QP, body: B): Promise {
- return super.request(pathParams, queryParams, body);
- }
-}
diff --git a/frontend/src/services/api-client/endpoints/rest-endpoint.ts b/frontend/src/services/api-client/endpoints/rest-endpoint.ts
deleted file mode 100644
index 4438214f..00000000
--- a/frontend/src/services/api-client/endpoints/rest-endpoint.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import apiClient from "@/services/api-client/api-client.ts";
-import {HttpErrorStatusException} from "@/services/api-client/api-exceptions.ts";
-import type {ResponseType} from "axios";
-
-export abstract class RestEndpoint {
- public abstract readonly method: "GET" | "POST" | "PUT" | "DELETE";
- constructor(public readonly url: string) {
- }
-
- protected async request(pathParams: PP, queryParams: QP, body: B, responseType?: ResponseType): Promise {
- let urlFilledIn = this.url.replace(/:(\w+)(\/|$)/g, (_, key, after) =>
- (pathParams[key] ? encodeURIComponent(pathParams[key]) : `:${key}`) + after
- );
- const response = await apiClient.request({
- url: urlFilledIn,
- method: this.method,
- params: queryParams,
- data: body,
- responseType: responseType || 'json'
- });
- if (response.status / 100 !== 2) {
- throw new HttpErrorStatusException(response);
- }
- return response.data;
- }
-}
-
-export type Params = {[key: string]: string | number | boolean | undefined};
diff --git a/frontend/src/services/api-client/remote-resource.ts b/frontend/src/services/api-client/remote-resource.ts
deleted file mode 100644
index 24982135..00000000
--- a/frontend/src/services/api-client/remote-resource.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import {type ShallowReactive, shallowReactive} from "vue";
-
-export type NotLoadedState = {
- type: "notLoaded"
-};
-export type LoadingState = {
- type: "loading"
-};
-export type ErrorState = {
- type: "error",
- error: any
-};
-export type SuccessState = {
- type: "success",
- data: T
-};
-export type RemoteResourceState = NotLoadedState | LoadingState | ErrorState | SuccessState;
-
-export type RemoteResource = ShallowReactive<{
- state: RemoteResourceState
-}>;
-
-export function remoteResource(): RemoteResource {
- return shallowReactive({
- state: {
- type: "notLoaded"
- }
- });
-}
-
-export function loadResource(resource: RemoteResource, promise: Promise): void {
- resource.state = { type: "loading" }
- promise.then(
- data => resource.state = { type: "success", data },
- error => resource.state = { type: "error", error }
- );
-}
diff --git a/frontend/src/services/learning-content/learning-object-service.ts b/frontend/src/services/learning-content/learning-object-service.ts
deleted file mode 100644
index d485375e..00000000
--- a/frontend/src/services/learning-content/learning-object-service.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import {GetEndpoint} from "@/services/api-client/endpoints/get-endpoint.ts";
-import type {LearningObject} from "@/data-objects/learning-object.ts";
-import type {Language} from "@/data-objects/language.ts";
-import {GetHtmlEndpoint} from "@/services/api-client/endpoints/get-html-endpoint.ts";
-
-const getLearningObjectMetadataEndpoint = new GetEndpoint<{hruid: string}, {language: Language, version: number}, LearningObject>(
- "/learningObject/:hruid"
-);
-
-const getLearningObjectHtmlEndpoint = new GetHtmlEndpoint<{hruid: string}, {language: Language, version: number}>(
- "/learningObject/:hruid/html"
-);
-
-export function getLearningObjectMetadata(
- hruid: string,
- language: Language,
- version: number
-): Promise {
- return getLearningObjectMetadataEndpoint.get({hruid}, {language, version});
-}
-
-export function getLearningObjectHTML(
- hruid: string,
- language: Language,
- version: number
-): Promise {
- return getLearningObjectHtmlEndpoint.get({hruid}, {language, version});
-}
diff --git a/frontend/src/services/learning-content/learning-path-service.ts b/frontend/src/services/learning-content/learning-path-service.ts
deleted file mode 100644
index 1c5acffd..00000000
--- a/frontend/src/services/learning-content/learning-path-service.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import {GetEndpoint} from "@/services/api-client/endpoints/get-endpoint.ts";
-import {LearningPath, type LearningPathDTO} from "@/data-objects/learning-path.ts";
-import type {Language} from "@/data-objects/language.ts";
-import {single} from "@/utils/response-assertions.ts";
-
-const learningPathEndpoint = new GetEndpoint<
- {},
- {search?: string, hruid?: string, language?: Language, forGroup?: string, forStudent?: string},
- LearningPathDTO[]
->("/learningPath");
-
-export async function searchLearningPaths(query: string): Promise {
- let dtos = await learningPathEndpoint.get({}, {search: query})
- return dtos.map(dto => LearningPath.fromDTO(dto));
-}
-
-export async function getLearningPath(hruid: string, language: Language, options?: {forGroup?: string, forStudent?: string}): Promise {
- let dtos = await learningPathEndpoint.get(
- {},
- {hruid, language, forGroup: options?.forGroup, forStudent: options?.forStudent}
- );
- return LearningPath.fromDTO(single(dtos));
-}