@drax/identity-back 0.0.31 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/IdentityConfig.js +2 -3
- package/dist/factory/RoleServiceFactory.js +8 -7
- package/dist/factory/TenantServiceFactory.js +8 -7
- package/dist/factory/UserApiKeyServiceFactory.js +24 -0
- package/dist/factory/UserServiceFactory.js +8 -7
- package/dist/graphql/resolvers/user-api-key.resolvers.js +89 -0
- package/dist/graphql/resolvers/user.resolvers.js +7 -2
- package/dist/graphql/types/userApiKey.graphql +33 -0
- package/dist/index.js +4 -2
- package/dist/interfaces/IUserApiKeyRepository.js +1 -0
- package/dist/middleware/apiKeyMiddleware.js +30 -0
- package/dist/middleware/rbacMiddleware.js +0 -1
- package/dist/models/UserApiKeyModel.js +44 -0
- package/dist/permissions/IdentityPermissions.js +6 -0
- package/dist/rbac/Rbac.js +8 -0
- package/dist/repository/mongo/UserApiKeyMongoRepository.js +82 -0
- package/dist/repository/mongo/UserMongoRepository.js +3 -3
- package/dist/repository/sqlite/RoleSqliteRepository.js +16 -18
- package/dist/repository/sqlite/TenantSqliteRepository.js +13 -11
- package/dist/repository/sqlite/UserApiKeySqliteRepository.js +147 -0
- package/dist/repository/sqlite/UserSqliteRepository.js +29 -26
- package/dist/routes/UserApiKeyRoutes.js +119 -0
- package/dist/routes/UserRoutes.js +5 -1
- package/dist/services/UserApiKeyService.js +65 -0
- package/dist/setup/LoadIdentityConfigFromEnv.js +3 -3
- package/dist/utils/AuthUtils.js +10 -0
- package/dist/zod/UserApiKeyZod.js +9 -0
- package/package.json +7 -6
- package/src/config/IdentityConfig.ts +4 -3
- package/src/factory/RoleServiceFactory.ts +11 -11
- package/src/factory/TenantServiceFactory.ts +11 -11
- package/src/factory/UserApiKeyServiceFactory.ts +30 -0
- package/src/factory/UserServiceFactory.ts +8 -7
- package/src/graphql/resolvers/tenant.resolvers.ts +0 -1
- package/src/graphql/resolvers/user-api-key.resolvers.ts +94 -0
- package/src/graphql/resolvers/user.resolvers.ts +9 -2
- package/src/graphql/types/userApiKey.graphql +33 -0
- package/src/index.ts +10 -0
- package/src/interfaces/IUserApiKeyRepository.ts +8 -0
- package/src/middleware/apiKeyMiddleware.ts +35 -0
- package/src/middleware/rbacMiddleware.ts +1 -2
- package/src/models/UserApiKeyModel.ts +59 -0
- package/src/permissions/IdentityPermissions.ts +7 -0
- package/src/rbac/Rbac.ts +13 -2
- package/src/repository/mongo/UserApiKeyMongoRepository.ts +114 -0
- package/src/repository/mongo/UserMongoRepository.ts +3 -3
- package/src/repository/sqlite/RoleSqliteRepository.ts +28 -20
- package/src/repository/sqlite/TenantSqliteRepository.ts +25 -11
- package/src/repository/sqlite/UserApiKeySqliteRepository.ts +197 -0
- package/src/repository/sqlite/UserSqliteRepository.ts +37 -27
- package/src/routes/UserApiKeyRoutes.ts +128 -0
- package/src/routes/UserRoutes.ts +5 -1
- package/src/services/UserApiKeyService.ts +86 -0
- package/src/setup/LoadIdentityConfigFromEnv.ts +5 -3
- package/src/utils/AuthUtils.ts +11 -0
- package/src/zod/UserApiKeyZod.ts +15 -0
- package/test/data-obj/apikey/root-mongo-user-apikey.ts +10 -0
- package/test/data-obj/roles/admin-mongo-role.ts +0 -3
- package/test/initializers/RoleMongoInitializer.ts +1 -0
- package/test/initializers/RoleSqliteInitializer.ts +1 -0
- package/test/initializers/UserMongoInitializer.ts +18 -0
- package/test/repository/mongo/user-apikey-mongo-repository.test.ts +73 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/types/factory/RoleServiceFactory.d.ts.map +1 -1
- package/types/factory/TenantServiceFactory.d.ts.map +1 -1
- package/types/factory/UserApiKeyServiceFactory.d.ts.map +1 -0
- package/types/factory/UserServiceFactory.d.ts.map +1 -1
- package/types/graphql/resolvers/tenant.resolvers.d.ts.map +1 -1
- package/types/graphql/resolvers/user-api-key.resolvers.d.ts.map +1 -0
- package/types/graphql/resolvers/user.resolvers.d.ts.map +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/interfaces/IUserApiKeyRepository.d.ts.map +1 -0
- package/types/middleware/apiKeyMiddleware.d.ts.map +1 -0
- package/types/middleware/rbacMiddleware.d.ts.map +1 -1
- package/types/models/UserApiKeyModel.d.ts.map +1 -0
- package/types/rbac/Rbac.d.ts +15 -0
- package/types/rbac/Rbac.d.ts.map +1 -1
- package/types/repository/mongo/UserApiKeyMongoRepository.d.ts.map +1 -0
- package/types/repository/sqlite/RoleSqliteRepository.d.ts.map +1 -1
- package/types/repository/sqlite/TenantSqliteRepository.d.ts.map +1 -1
- package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts +19 -0
- package/types/repository/sqlite/UserApiKeySqliteRepository.d.ts.map +1 -0
- package/types/repository/sqlite/UserSqliteRepository.d.ts.map +1 -1
- package/types/routes/UserApiKeyRoutes.d.ts.map +1 -0
- package/types/routes/UserRoutes.d.ts.map +1 -1
- package/types/services/UserApiKeyService.d.ts.map +1 -0
- package/types/setup/LoadIdentityConfigFromEnv.d.ts.map +1 -1
- package/types/utils/AuthUtils.d.ts.map +1 -1
- package/types/zod/UserApiKeyZod.d.ts +16 -0
- package/types/zod/UserApiKeyZod.d.ts.map +1 -0
- package/src/utils/DbSetupUtils.ts +0 -41
- package/types/config/IdentityConfig.d.ts +0 -13
- package/types/config/IdentityConfig.d.ts.map +0 -1
- package/types/graphql/resolvers/role.resolvers.d.ts +0 -52
- package/types/graphql/resolvers/tenant.resolvers.d.ts +0 -49
- package/types/graphql/resolvers/user.resolvers.d.ts +0 -67
- package/types/utils/DbSetupUtils.d.ts.map +0 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import UserService from "../../src/services/UserService";
|
|
2
|
+
import {IUser} from "../../../identity-share/src/interfaces/IUser";
|
|
3
|
+
import UserMongoRepository from "../../src/repository/mongo/UserMongoRepository";
|
|
4
|
+
|
|
5
|
+
class UserMongoInitializer {
|
|
6
|
+
|
|
7
|
+
static async initRootUser(): Promise<IUser>{
|
|
8
|
+
const userService = new UserService(new UserMongoRepository())
|
|
9
|
+
let data = (await import("../data-obj/users/root-mongo-user")).default
|
|
10
|
+
let userCreated = await userService.create(data)
|
|
11
|
+
return userCreated
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default UserMongoInitializer
|
|
16
|
+
export {
|
|
17
|
+
UserMongoInitializer
|
|
18
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import {before, after, describe, it, test} from "node:test"
|
|
2
|
+
import assert, {equal} from "assert";
|
|
3
|
+
import UserApiKeyMongoRepository from "../../../src/repository/mongo/UserApiKeyMongoRepository";
|
|
4
|
+
import MongoInMemory from "../../db/MongoInMemory";
|
|
5
|
+
import RoleMongoInitializer from "../../initializers/RoleMongoInitializer";
|
|
6
|
+
import UserMongoInitializer from "../../initializers/UserMongoInitializer";
|
|
7
|
+
import {IUserApiKey} from "../../../../identity-share/src/interfaces/IUserApiKey";
|
|
8
|
+
import type {IDraxPaginateResult} from "@drax/common-share";
|
|
9
|
+
import {mongoose, ValidationError} from "@drax/common-back";
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
test.describe("UserApiKeyRepositoryTest", function () {
|
|
13
|
+
|
|
14
|
+
let userApiKeyRepository = new UserApiKeyMongoRepository()
|
|
15
|
+
let data
|
|
16
|
+
let adminRole
|
|
17
|
+
let rootUser
|
|
18
|
+
|
|
19
|
+
before(async () => {
|
|
20
|
+
await MongoInMemory.connect()
|
|
21
|
+
adminRole = await RoleMongoInitializer.initAdminRole()
|
|
22
|
+
rootUser = await UserMongoInitializer.initRootUser()
|
|
23
|
+
|
|
24
|
+
//console.log("BEFORE USER", MongoInMemory.mongooseStatus, MongoInMemory.serverStatus)
|
|
25
|
+
return
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
after(async () => {
|
|
29
|
+
await MongoInMemory.DropAndClose()
|
|
30
|
+
//console.log("AFTER USER", MongoInMemory.status, MongoInMemory.serverStatus)
|
|
31
|
+
return
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
test("Create mongo user apikey successfully", async function () {
|
|
35
|
+
data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
|
|
36
|
+
let userApiKeyCreated = await userApiKeyRepository.create(data)
|
|
37
|
+
equal(userApiKeyCreated.name, data.name)
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
test("Find mongo user by ID successfully", async function () {
|
|
41
|
+
data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
|
|
42
|
+
let userApiKeyFound = await userApiKeyRepository.findById(data._id)
|
|
43
|
+
|
|
44
|
+
equal(userApiKeyFound.name, data.name)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
test("Find mongo user by secret successfully", async function () {
|
|
48
|
+
data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
|
|
49
|
+
console.log("Data:",data)
|
|
50
|
+
let userApiKeyFound = await userApiKeyRepository.findBySecret(data.secret)
|
|
51
|
+
console.log("userApiKeyFound",userApiKeyFound)
|
|
52
|
+
equal(userApiKeyFound.secret, data.secret)
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
test("Update mongo user apikey successfully.", async function () {
|
|
57
|
+
data = (await import("../../data-obj/apikey/root-mongo-user-apikey")).default
|
|
58
|
+
data.name = "AdminUpdated"
|
|
59
|
+
let userUpdated: IUserApiKey = await userApiKeyRepository.update(data._id, data)
|
|
60
|
+
equal(userUpdated.name, userUpdated.name)
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
test("Paginate mongo users successfully.", async function () {
|
|
65
|
+
let paginateUsersApiKey: IDraxPaginateResult<IUserApiKey> = await userApiKeyRepository.paginate({
|
|
66
|
+
page: 1,
|
|
67
|
+
limit: 5
|
|
68
|
+
})
|
|
69
|
+
equal(paginateUsersApiKey.items.length, 1)
|
|
70
|
+
equal(paginateUsersApiKey.total, 1)
|
|
71
|
+
equal(paginateUsersApiKey.page, 1)
|
|
72
|
+
})
|
|
73
|
+
})
|