diff --git a/package-lock.json b/package-lock.json index 85c3330..1a0bf2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -554,6 +554,38 @@ "webpack-log": "^1.2.0" } }, + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + } + }, + "is-buffer": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", + "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + } + } + }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", @@ -3711,9 +3743,9 @@ } }, "lodash": { - "version": "4.17.11", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", - "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", + "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", "dev": true }, "log-symbols": { @@ -3980,9 +4012,9 @@ } }, "mixin-deep": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", - "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, "requires": { "for-in": "^1.0.2", @@ -4040,8 +4072,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" }, "multicast-dns": { "version": "6.2.3", @@ -5465,9 +5496,9 @@ "dev": true }, "set-value": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", - "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, "requires": { "extend-shallow": "^2.0.1", @@ -6231,38 +6262,15 @@ } }, "union-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", - "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", - "set-value": "^0.4.3" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "set-value": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", - "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.1", - "to-object-path": "^0.3.0" - } - } + "set-value": "^2.0.1" } }, "uniq": { diff --git a/package.json b/package.json index 4dafa95..b86073a 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,8 @@ "dependencies": { "@types/react": "^16.8.19", "@types/react-dom": "^16.8.4", + "axios": "^0.19.0", + "history": "^4.9.0", "react": "^16.8.6", "react-dom": "^16.8.6", "react-router-dom": "^5.0.1" diff --git a/src/components/category/container.jsx b/src/components/category/container.jsx index 9a2b7db..5ec233c 100644 --- a/src/components/category/container.jsx +++ b/src/components/category/container.jsx @@ -1,6 +1,7 @@ import React from 'react' import Loader from '../common/loader' import Error from '../common/error' +import { getCategoryId } from '../../helpers/api' class Category extends React.Component { constructor() { @@ -13,12 +14,10 @@ class Category extends React.Component { componentWillMount() { const id = this.props.match.params.id - fetch(`http://127.0.0.1:3000/api/v1/category/${id}`) - .then(res => res.json()) - .then(output => { - this.setState({ category: output, isloading: false }) - console.log(output) - }) + getCategoryId(id).then(output => { + this.setState({ category: output, isloading: false }) + console.log(output) + }) } render() { diff --git a/src/components/home/container.jsx b/src/components/home/container.jsx index 0c0fa17..678fb30 100644 --- a/src/components/home/container.jsx +++ b/src/components/home/container.jsx @@ -2,6 +2,7 @@ import React from 'react' import Loader from '../common/loader' import { Link } from 'react-router-dom' import ErrorComponent from '../common/error' +import { getAllPackage, getAllCategory } from '../../helpers/api' class Fetch extends React.Component { constructor() { @@ -14,17 +15,15 @@ class Fetch extends React.Component { } } - componentWillMount() { - fetch('http://127.0.0.1:3000/api/v1/package/all') - .then(res => res.json()) + componentDidMount() { + getAllPackage() .then(pkg_output => { this.setState({ pkg: pkg_output, isloading: false }) console.log(pkg_output) }) .catch(error => this.setState({ error, isloading: false })) - fetch('http://127.0.0.1:3000/api/v1/category/all') - .then(res => res.json()) + getAllCategory() .then(category_output => { this.setState({ category: category_output, isloading: false }) console.log(category_output) diff --git a/src/components/home/index.js b/src/components/home/index.js index 2c12da4..460e293 100644 --- a/src/components/home/index.js +++ b/src/components/home/index.js @@ -1,8 +1,3 @@ -import React from 'react' import Home from './container' -export default class Home extends React.Component { - render() { - return - } -} +export default Home diff --git a/src/components/login/history.js b/src/components/login/history.js new file mode 100644 index 0000000..e5987c4 --- /dev/null +++ b/src/components/login/history.js @@ -0,0 +1,3 @@ +import { createBrowserHistory } from 'history' + +export default createBrowserHistory() diff --git a/src/components/login/index.js b/src/components/login/index.js new file mode 100644 index 0000000..5ee522f --- /dev/null +++ b/src/components/login/index.js @@ -0,0 +1,3 @@ +import SignUp from './signup' + +export default SignUp diff --git a/src/components/login/signup.jsx b/src/components/login/signup.jsx new file mode 100644 index 0000000..38abeca --- /dev/null +++ b/src/components/login/signup.jsx @@ -0,0 +1,132 @@ +import React, { Component } from 'react' +// import history from './history' +import { withRouter } from 'react-router-dom' + +import Home from '../home' +import { PostUser } from '../../helpers/postform' + +class Postform extends Component { + constructor(props) { + super(props) + + this.state = { + first_name: 'aravind', + last_name: 'krishnan', + email: 'abcde@gmail.com', + phone: '987654321', + password: 'hbdfufenifnernfin', + } + } + + changeHandler = event => { + this.setState({ [event.target.name]: event.target.value }) + } + + submitHandler = event => { + event.preventDefault() + const { history } = this.props + console.log(history) + const { first_name, last_name, email, password, phone } = this.state + const user = { + first_name, + last_name, + email, + phone, + password, + } + + PostUser(user).then(res => { + const output = res.data.success + + console.log(output) + if ((status = 200 && output == true)) { + console.log('reg success') + // console.log(props.history) + // this.props.history.push('/') + } else { + console.log('faile') + } + }) + } + // const response = await axios({ + // method: 'POST', + // url: 'http://localhost:3000/api/v1/user', + // data: user, + // }).then(res => { + // const output = res.data.success + // // console.log(output) + + // if ((status = 200 && output == true)) { + // console.log('reg success') + // } else { + // console.log('faile') + // } + // }) + + // console.log(response.body) + + render() { + const { first_name, last_name, email, password, phone } = this.state + + return ( +
+
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+
+ ) + } +} + +export default Postform diff --git a/src/components/package/container.jsx b/src/components/package/container.jsx index abe5cce..f0121d6 100644 --- a/src/components/package/container.jsx +++ b/src/components/package/container.jsx @@ -1,7 +1,7 @@ import React from 'react' import Loader from '../common/loader' import Error from '../common/error' - +import { getPackageId } from '../../helpers/api' class Package extends React.Component { constructor(props) { super(props) @@ -15,8 +15,7 @@ class Package extends React.Component { componentDidMount() { const id = this.props.match.params.id - fetch(`http://127.0.0.1:3000/api/v1/package/${id}`) - .then(res => res.json()) + getPackageId(id) .then(output => { this.setState({ pkg: output, isloading: false }) console.log(output) diff --git a/src/components/router.jsx b/src/components/router.jsx index a075148..b238ca1 100644 --- a/src/components/router.jsx +++ b/src/components/router.jsx @@ -1,6 +1,7 @@ import React from 'react' import { Switch, BrowserRouter as Router, Route } from 'react-router-dom' import Home from './home' +import Login from './login/signup' import Package from './package' import Category from './category' @@ -9,9 +10,11 @@ class Routing extends React.Component { return ( + } /> + {/* */} {/* TODO: */} diff --git a/src/helpers/api.js b/src/helpers/api.js new file mode 100644 index 0000000..302f3f2 --- /dev/null +++ b/src/helpers/api.js @@ -0,0 +1,16 @@ +const BASE_Url = 'http://127.0.0.1:3000/api/v1' + +export function getAllPackage() { + return fetch(`${BASE_Url}/package/all`).then(res => res.json()) +} + +export function getAllCategory() { + return fetch(`${BASE_Url}/category/all`).then(res => res.json()) +} +export function getPackageId(id) { + return fetch(`${BASE_Url}/package/${id}`).then(res => res.json()) +} + +export function getCategoryId(id) { + return fetch(`${BASE_Url}/category/${id}`).then(res => res.json()) +} diff --git a/src/helpers/postUser.jsx b/src/helpers/postUser.jsx new file mode 100644 index 0000000..ceb672f --- /dev/null +++ b/src/helpers/postUser.jsx @@ -0,0 +1,37 @@ +// import axios from 'axios' +// import React from 'react' + +// // const response = await axios({ +// // method: 'POST', +// // url: 'http://localhost:3000/api/v1/user', +// // data: user, +// // }).then(res => { +// // const output = res.data.success +// // console.log(output) + +// // +// // }) + +// class Postuser extends React.Component { +// constructor(props) { +// super(props) +// } +// PostUser(data) { +// axios({ +// method: 'POST', +// url: 'http://localhost:3000/api/v1/user', +// data: data, +// }).then(res => { +// const output = res.data.success +// // console.log(output) +// if ((status = 200 && output == true)) { +// console.log('reg success') +// this.props.history.push('/') +// } else { +// console.log('faile') +// } +// }) +// } +// } + +// export default Postuser diff --git a/src/helpers/postform.js b/src/helpers/postform.js new file mode 100644 index 0000000..64c375c --- /dev/null +++ b/src/helpers/postform.js @@ -0,0 +1,8 @@ +import axios from 'axios' +export function PostUser(user) { + return axios({ + method: 'POST', + url: 'http://localhost:3000/api/v1/user', + data: user, + }) +} diff --git a/src/index.js b/src/index.js index 2cd9dbc..28bb806 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ import React from 'react' import ReactDOM from 'react-dom' -import Router from './components/router' +import Login from './components/login' const targetEl = document.getElementById('root') -ReactDOM.render(, targetEl) +ReactDOM.render(, targetEl) diff --git a/webpack.config.js b/webpack.config.js index cef4c24..2619a1e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -14,6 +14,7 @@ module.exports = { output: { filename: 'app.[hash].js', path: path.resolve(__dirname, 'build'), + publicPath: '/', }, resolve: {