Skip to content

Commit

Permalink
[Refactor] Add referer logic
Browse files Browse the repository at this point in the history
  • Loading branch information
qianmoQ committed Dec 6, 2021
1 parent 33c6fc3 commit 42c31cc
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@
(click)="handlerOpenModal(template, 0)">
<i class="fa fa-plus"></i>
</button>
<button type="button" class="btn btn-success btn-sm" tooltip="{{ 'common.refresh' | translate }}">
<button type="button" class="btn btn-success btn-sm"
tooltip="{{ 'common.refresh' | translate }}"
(click)="handlerRefresh()">
<i class="fa fa-refresh"></i>
</button>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { BaseComponent } from '@renderer/app/base.component';
import { ResponseDataModel } from '@renderer/model/response.model';
import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal';
import { ActionEnum } from '@renderer/enum/action.enum';
import { DatasourceJob } from '@renderer/job/datasource.job';

@Component({
selector: 'app-management-datasource',
Expand All @@ -21,7 +22,8 @@ export class DatasourceComponent extends BaseComponent implements OnInit {

constructor(private service: DatasourceService,
private toastyService: ToastrService,
private bsModalService: BsModalService) {
private bsModalService: BsModalService,
private datasourceJob: DatasourceJob) {
super();
this.handlerGetAll();
}
Expand Down Expand Up @@ -58,7 +60,7 @@ export class DatasourceComponent extends BaseComponent implements OnInit {
if (!response.status) {
this.toastyService.error(response.message);
} else {
this.toastyService.success(response.message);
this.toastyService.success('Test connection success!');
this.formInfo.status = true;
this.disabled.button = false;
}
Expand Down Expand Up @@ -101,4 +103,9 @@ export class DatasourceComponent extends BaseComponent implements OnInit {
this.handlerGetAll();
}
}

handlerRefresh() {
this.datasourceJob.checkHealth();
this.handlerGetAll();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { CommonModule } from '@angular/common';
import { RadioModule } from '@renderer/directives/bootstrap/radio/radio.module';
import { DatasourceService } from '@renderer/services/management/datasource.service';
import { ToastrModule, ToastrService } from 'ngx-toastr';
import { DatasourceJob } from '@renderer/job/datasource.job';

const DATASOURCE_ROUTES: Routes = [
{path: '', component: DatasourceComponent}
Expand Down Expand Up @@ -37,7 +38,8 @@ const DATASOURCE_ROUTES: Routes = [
useClass: ToastrService
},
DatasourceService,
BsModalService
BsModalService,
DatasourceJob
]
})
export class DatasourceModule {
Expand Down
25 changes: 25 additions & 0 deletions src/renderer/job/datasource.job.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import { DatasourceService } from '@renderer/services/management/datasource.service';
import { RequestModel } from '@renderer/model/request.model';
import { StringUtils } from '@renderer/utils/string.utils';
import { Injectable } from '@angular/core';

@Injectable()
export class DatasourceJob {
constructor(private datasourceService: DatasourceService) {
}

checkHealth() {
this.datasourceService.getAll()?.data?.columns.forEach(async element => {
const request: RequestModel = new RequestModel();
request.config = element;
const response = await this.datasourceService.getResponse(request);
element.status = response.status;
if (StringUtils.isNotEmpty(response?.data?.columns)) {
element.version = response.data.columns[0].version;
} else {
element.message = response.message;
}
this.datasourceService.update(element.alias, element);
});
}
}
4 changes: 2 additions & 2 deletions src/renderer/utils/http.utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ const timeout = 10 * 1000;
export class HttpUtils {
public static post(url, data = {}): Promise<any> {
return new Promise((resolve, reject) => {
axios.post(url, data, {timeout})
axios.post(url, data + ' FORMAT JSON', {timeout})
.then(rs => {
const response = new ResponseModel();
if (rs.status === 200) {
if (response.data) {
if (rs.data) {
const responseData = new ResponseDataModel();
responseData.headers = rs.data.meta;
responseData.columns = rs.data.data;
Expand Down

0 comments on commit 42c31cc

Please sign in to comment.