File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { createAxiosHeaders , makeOpenOpsTablesPost } from '@openops/common' ;
2+
3+ export type DatabaseToken = {
4+ id : number ;
5+ name : string ;
6+ workspace : number ;
7+ key : string ;
8+ permissions : {
9+ create : boolean ;
10+ read : boolean ;
11+ update : boolean ;
12+ delete : boolean ;
13+ } ;
14+ } ;
15+
16+ export type CreateDatabaseTokenParams = {
17+ name : string ;
18+ workspaceId : number ;
19+ systemToken : string ;
20+ } ;
21+
22+ export async function createDatabaseToken (
23+ params : CreateDatabaseTokenParams ,
24+ ) : Promise < DatabaseToken > {
25+ const payload = {
26+ name : params . name ,
27+ workspace : params . workspaceId ,
28+ } ;
29+
30+ const headers = createAxiosHeaders ( params . systemToken ) ;
31+ const response = await makeOpenOpsTablesPost < DatabaseToken > (
32+ 'api/database/tokens/' ,
33+ payload ,
34+ headers ,
35+ ) ;
36+
37+ return response ;
38+ }
Original file line number Diff line number Diff line change 11import { addUserToWorkspace } from './add-user-workspace' ;
22import { createDatabase } from './create-database' ;
3+ import { createDatabaseToken } from './create-database-token' ;
34import { createMcpEndpoint } from './create-mcp-endpoint' ;
45import { createTable } from './create-table' ;
56import { createUser } from './create-user' ;
@@ -16,6 +17,7 @@ export const openopsTables = {
1617 addUserToWorkspace,
1718 listDatabases,
1819 createDatabase,
20+ createDatabaseToken,
1921 createTable,
2022 listWorkspaces,
2123 createWorkspace,
Original file line number Diff line number Diff line change 1+ const openopsCommonMock = {
2+ ...jest . requireActual ( '@openops/common' ) ,
3+ makeOpenOpsTablesPost : jest . fn ( ) ,
4+ } ;
5+ jest . mock ( '@openops/common' , ( ) => openopsCommonMock ) ;
6+
7+ import { AxiosHeaders } from 'axios' ;
8+ import { createDatabaseToken } from '../../../src/app/openops-tables/create-database-token' ;
9+
10+ describe ( 'createDatabaseToken' , ( ) => {
11+ beforeEach ( ( ) => {
12+ jest . clearAllMocks ( ) ;
13+ } ) ;
14+
15+ it ( 'should return the created token on successful creation' , async ( ) => {
16+ const params = {
17+ name : 'Test Token' ,
18+ workspaceId : 1 ,
19+ systemToken : 'test_system_token' ,
20+ } ;
21+ const mockTokenResponse = {
22+ id : 1 ,
23+ name : 'Test Token' ,
24+ workspace : 1 ,
25+ key : 'test_database_token_key' ,
26+ permissions : {
27+ create : true ,
28+ read : true ,
29+ update : true ,
30+ delete : true ,
31+ } ,
32+ } ;
33+
34+ openopsCommonMock . makeOpenOpsTablesPost . mockResolvedValue (
35+ mockTokenResponse ,
36+ ) ;
37+
38+ const result = await createDatabaseToken ( params ) ;
39+
40+ expect ( result ) . toEqual ( mockTokenResponse ) ;
41+ expect ( openopsCommonMock . makeOpenOpsTablesPost ) . toHaveBeenCalledWith (
42+ 'api/database/tokens/' ,
43+ {
44+ name : params . name ,
45+ workspace : params . workspaceId ,
46+ } ,
47+ new AxiosHeaders ( {
48+ 'Content-Type' : 'application/json' ,
49+ Authorization : `JWT ${ params . systemToken } ` ,
50+ } ) ,
51+ ) ;
52+ } ) ;
53+ } ) ;
You can’t perform that action at this time.
0 commit comments