api Controller & token

This commit is contained in:
Julian Krauser 2025-01-21 13:54:52 +01:00
parent 36ecccd0dc
commit 4568bef10e
8 changed files with 115 additions and 5 deletions

View file

@ -6,6 +6,8 @@ import RolePermissionService from "../service/user/rolePermissionService";
import UserPermissionService from "../service/user/userPermissionService";
import UserService from "../service/user/userService";
import PermissionHelper from "./permissionHelper";
import ApiService from "../service/user/apiService";
import ApiPermissionService from "../service/user/apiPermissionService";
export abstract class JWTHelper {
static validate(token: string): Promise<string | jwt.JwtPayload> {
@ -72,4 +74,29 @@ export abstract class JWTHelper {
throw new InternalException("Failed accessToken creation", err);
});
}
static async buildApiToken(token: string): Promise<string> {
let { id, title } = await ApiService.getByToken(token);
let apiPermissions = await ApiPermissionService.getByApi(id);
let apiPermissionStrings = apiPermissions.map((e) => e.permission);
let permissionObject = PermissionHelper.convertToObject(apiPermissionStrings);
let jwtData: JWTToken = {
userId: id,
mail: "",
username: title,
firstname: "",
lastname: "",
isOwner: false,
permissions: permissionObject,
};
return await JWTHelper.create(jwtData)
.then((result) => {
return result;
})
.catch((err) => {
throw new InternalException("Failed accessToken creation", err);
});
}
}