import { Component, ViewChild, Input} from '@angular/core'
import { FormBuilder, Validators } from '@angular/forms'
import { CoRequestManagerService } from './co-request-manager.service'
import { CoRequestFormComponent } from 'co-request-form/co-request-form'
import { BehaviorSubject } from 'rxjs/Rx'
@Component({
selector: 'co-request-manager',
template: `
`
})
export class CoRequestManagerComponent {
// emit new values when updated
@Input() url = '';
@Input() method = 'GET';
@Input() body = '{}';
@Input() headers = {};
@Input() listHeight;
@ViewChild(CoRequestFormComponent) coRequestFormComponent: CoRequestFormComponent;
public saveRequestForm;
public fc;
constructor (
private requestManagerService: CoRequestManagerService,
private formBuilder: FormBuilder
) {}
ngOnInit () {
this.saveRequestForm = this.formBuilder.group({
newRequestName: ['', Validators.required],
newRequestGroup: ['', Validators.required]
})
this.fc = this.saveRequestForm.controls
}
public selectedRequest ({url, method, body, headers}) {
this.url = url
this.method = method
this.body = body
this.headers = headers
}
public saveNewRequest () {
if (!this.saveRequestForm.valid) {
alert('name or group is missing')
return
}
let requestData = this.coRequestFormComponent.request()
let newRequestNameControl = this.saveRequestForm.controls.newRequestName
let newRequestGroupControl = this.saveRequestForm.controls.newRequestGroup
this.requestManagerService.saveNewRequest(Object.assign({}, requestData, {
name: newRequestNameControl.value,
tags: [newRequestGroupControl.value]
}))
newRequestGroupControl.updateValue('')
newRequestNameControl.updateValue('')
}
}