| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import axios from 'axios';
- import _ from 'lodash';
- import { Task, TaskRunner } from './task';
- interface SearchTestDataSetupOptions {
- count: number;
- }
- const client = axios.create({
- baseURL: 'http://localhost:3000/api',
- auth: {
- username: 'admin',
- password: 'admin2',
- },
- });
- export async function getUser(user): Promise<any> {
- console.log('Creating user ' + user.name);
- const search = await client.get('/users/search', {
- params: { query: user.login },
- });
- if (search.data.totalCount === 1) {
- user.id = search.data.users[0].id;
- return user;
- }
- const rsp = await client.post('/admin/users', user);
- user.id = rsp.data.id;
- return user;
- }
- export async function getTeam(team: any): Promise<any> {
- // delete if exists
- const teams = await client.get('/teams/search');
- for (const existing of teams.data.teams) {
- if (existing.name === team.name) {
- console.log('Team exists, deleting');
- await client.delete('/teams/' + existing.id);
- }
- }
- console.log('Creating team ' + team.name);
- const teamRsp = await client.post(`/teams`, team);
- team.id = teamRsp.data.teamId;
- return team;
- }
- export async function addToTeam(team: any, user: any): Promise<any> {
- const members = await client.get(`/teams/${team.id}/members`);
- console.log(`Adding user ${user.name} to team ${team.name}`);
- await client.post(`/teams/${team.id}/members`, { userId: user.id });
- }
- export async function setDashboardAcl(dashboardId: any, aclList: any) {
- console.log('Setting Dashboard ACL ' + dashboardId);
- await client.post(`/dashboards/id/${dashboardId}/permissions`, { items: aclList });
- }
- const searchTestDataSetupRunnner: TaskRunner<SearchTestDataSetupOptions> = async ({ count }) => {
- const user1 = await getUser({
- name: 'searchTestUser1',
- email: 'searchTestUser@team.com',
- login: 'searchTestUser1',
- password: '12345',
- });
- const team1 = await getTeam({ name: 'searchTestTeam1', email: 'searchtestdata@team.com' });
- addToTeam(team1, user1);
- // create or update folder
- const folder: any = {
- uid: 'search-test-data',
- title: 'Search test data folder',
- version: 1,
- };
- try {
- await client.delete(`/folders/${folder.uid}`);
- } catch (err) {}
- console.log('Creating folder');
- const rsp = await client.post(`/folders`, folder);
- folder.id = rsp.data.id;
- folder.url = rsp.data.url;
- await setDashboardAcl(folder.id, []);
- console.log('Creating dashboards');
- const dashboards: any = [];
- for (let i = 0; i < count; i++) {
- const dashboard: any = {
- uid: 'search-test-dash-' + i.toString().padStart(5, '0'),
- title: 'Search test dash ' + i.toString().padStart(5, '0'),
- };
- const rsp = await client.post(`/dashboards/db`, {
- dashboard: dashboard,
- folderId: folder.id,
- overwrite: true,
- });
- dashboard.id = rsp.data.id;
- dashboard.url = rsp.data.url;
- console.log('Created dashboard ' + dashboard.title);
- dashboards.push(dashboard);
- await setDashboardAcl(dashboard.id, [{ userId: 0, teamId: team1.id, permission: 4 }]);
- }
- };
- export const searchTestDataSetupTask = new Task<SearchTestDataSetupOptions>();
- searchTestDataSetupTask.setName('Search test data setup');
- searchTestDataSetupTask.setRunner(searchTestDataSetupRunnner);
|