import { Injectable } from '@nestjs/common'; import axios from 'axios'; import { error } from 'console'; import { response } from 'express'; import { Interface } from 'readline'; //====================Начнем================================= @Injectable() //Класс для подключения и получения токена, потом расширим, если звезда засветит export class ConnectorsService { user : string; //логин на стороне сервака password : string; //пароль к логину на стороне сервака path : string; // путь, куда стучимся creds : string; //правильная строка - солянка из логина и пароля, чем стучимся options : any; //в основном здесь хидеры, а то без них не хочет работать body: string; //Замечательный метод класса для инициализации свойств класса, сейчас в ручную, в дальнейшем планируется автоматом из конфы SetConnData() { this.user = "admin"; this.password = "admin"; this.path = 'http://192.168.244.1/e-data-front/auth/login'; this.creds = '{"login":"' + this.user + '","password":"' + this.password + '"}'; this.options = { headers: {'Content-Type' : 'application/json'} }; return 0; }; //Замечетельный метод, пока не придумал назначение, но если есть Get, то должен быть и Set GetConnData() { }; //Пробуем получить данные для меню GetMenuData (token : string){ this.path = 'http://192.168.244.1/e-cmdb/api/query'; this.body = '{"id":["/measures/device$18"],"data":{"links":{"flatten":true,"filter":{"cls":"measure"},"fields":["$id","id","cls","name"]}},"postQuery":"links","enableActions":false,"ts":1740060679399}'; this.options = { headers: {'Content-Type' : 'application/json', 'access-token' : token} }; } }; //Класс основных методов для получения, обработки данных и дальнейшей пересылки в Exporter @Injectable() export class MufapiService { token: string; //Глобальная переменная класса под токен //Получение токена через шаблонизацию async getAccessToken (path:string, body:string, headers) : Promise { interface Authtorise { access_token: string; }; let auth : Authtorise; this.token = 'Error'; await axios.post(path, body, headers).then((response)=>{ auth = response.data; this.token = auth.access_token; }).catch((error)=>{ this.token = error; }); return this.token; } //Получение данных для формирования меню в МУФ async getMenu (path:string, body:string, headers) : Promise { //*interface MenuController { // name: string; // let resp : string = 'Zlo'; await axios.post(path, body, headers).then((response)=>{ resp = response.data; // this.token=resp.name; //this.token = auth.access_token; console.log(resp); }).catch((error)=>{ this.token = error; }); return resp; } }