import React, { Component } from 'react'; import { API } from 'aws-amplify'; class Distributor extends Component { constructor(props) { super(props); this.state = { email: '', emailMessage: '', licenseCode: '', apiMessage: '', errMessage: '' }; } distributeLicenseCode() { // 画面初期化 this.initDisplay(); let email = this.state.email; let error = false; if (email == null || email === "") { this.setState({ emailMessage: "メールアドレスを入力してください。" }); error = true; } if (error) { return; } // Task: API Call console.log("Call LicenseCodeDistributor API"); let apiName = 'LicenseCodeDistributorAPI'; let path = `/license-codes`; let postData = { headers: {}, body: { "email": email }, response: true }; API.post(apiName, path, postData).then(response => { var result = response.data; // console.log("API call Post is succeeded!", result); this.setState({ course: result.course, licenseCode: result.licenseCode, apiMessage: result.message }); }) .catch(err => { this.setState({ errMessage: "エラーが発生しました。" }) console.log("api call error: ", err); }); } initDisplay() { this.setState({ course: '', emailMessage: '', licenseCode: '', apiMessage: '', errMessage: '' }); } render() { return ( <div className="control-group"> <h3>【AWS Training】 テキストのライセンスコード取得</h3><br/> <h4>トレーニング申込時のメールアドレスを入力し、取得ボタンを押してください</h4> <br /> <div/> <div className="control-group"> <label className="control-label">メールアドレス: </label> <input type="text" name="email" value={this.state.email} onChange={(e) => this.setState({email: e.target.value})} style={{width: "80%"}}/> <div style={{color: "red"}}> {this.state.emailMessage} </div> </div> <br></br> <div className="control-group"> <div className="controls"> <input className="btn btn-primary" type="button" id="getlicense_btn" value="取得" onClick={() => this.distributeLicenseCode()} /> </div> </div> <br></br> <div style={{color: "red"}}> {this.state.apiMessage} </div> { this.state.licenseCode ? <div> <h3> ライセンスコードは、{this.state.licenseCode} です。 </h3> </div> : <div/> } <div style={{color: "red"}}> {this.state.errMessage} </div> </div> ); } } export default Distributor;