Advertisement
andersonalmada2

Untitled

Aug 12th, 2022
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5.70 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5.     <meta charset="UTF-8">
  6.     <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8.     <title>Document</title>
  9.     <script src="https://unpkg.com/vue@2.7.7/dist/vue.js"></script>
  10.     <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  11. </head>
  12.  
  13. <body>
  14.  
  15.     <div id="app">
  16.         <div>
  17.             Login: <input type="text" name="" id="" v-model="email" /><br /><br />
  18.             Password: <input type="password" name="" id="" v-model="password" /><br /><br />
  19.             <button @click="login">Login</button><br /><br />
  20.  
  21.             Id: <input type="text" name="" id="" v-model="id" /><br /><br />
  22.             name: <input type="text" name="" id="" v-model="name" /><br /><br />
  23.             price:
  24.             <input type="price" name="" id="" v-model="price" /><br /><br />
  25.  
  26.             <button @click="fetchProducts">Fetch products</button><br /><br />
  27.             <button @click="fetchProductById">Fetch Product By Id</button><br /><br />
  28.             <button @click="fetchProductByName">Fetch Product By name</button><br /><br />
  29.             <button @click="postProduct">Post Product</button><br /><br />
  30.             <button @click="putProduct">Put Product</button><br /><br />
  31.             <button @click="deleteProductById">Delete Product</button><br /><br />
  32.  
  33.             <p>{{ product }}</p>
  34.  
  35.             <ul>
  36.                 <li v-for="product in products" :key="product.id">
  37.                     <h4>{{ product.id }}</h4>
  38.                     <p>{{ product.name }}</p>
  39.                     <p>{{ product.price }}</p>
  40.                 </li>
  41.             </ul>
  42.         </div>
  43.     </div>
  44.  
  45.     <script>
  46.         var app = new Vue({
  47.             el: "#app",
  48.             data: {
  49.                 email: "gomes@gmail.com",
  50.                 password: "senha123",
  51.                 token: "",
  52.                 id: 0,
  53.                 name: "",
  54.                 price: "",
  55.                 product: {},
  56.                 products: [],
  57.                 baseURI: "http://localhost:8080/api/products",
  58.                 oauth: "http://localhost:8080/oauth/token"
  59.             },
  60.             methods: {
  61.                 login: function () {
  62.                     var formData = new FormData();
  63.                     formData.append('username', this.email);
  64.                     formData.append('password', this.password);
  65.                     formData.append('grant_type', "password");
  66.  
  67.                     axios.post(this.oauth, formData, { auth: { username: 'mandacaru', password: 'senha123' } }).then((result) => {
  68.                         this.token = result.data.access_token;
  69.                         console.log(this.token);
  70.                     });
  71.                 },
  72.  
  73.                 fetchProducts: function () {
  74.                     const config = {
  75.                         headers: { Authorization: "Bearer " + this.token }
  76.                     };
  77.  
  78.                     axios.get(this.baseURI, config).then((result) => {
  79.                         this.products = result.data;
  80.                     });
  81.                 },
  82.                 fetchProductById: function () {
  83.                     const config = {
  84.                         headers: { Authorization: "Bearer " + this.token }
  85.                     };
  86.  
  87.                     axios
  88.                         .get(this.baseURI + "/" + this.id, config)
  89.                         .then((result) => {
  90.                             this.product = result.data;
  91.                         })
  92.                         .catch(function (error) {
  93.                             console.log(error);
  94.                         });
  95.                 },
  96.                 fetchProductByName: function () {
  97.                     const config = {
  98.                         headers: { Authorization: "Bearer " + this.token }
  99.                     };
  100.  
  101.                     axios
  102.                         .get(this.baseURI + "/search?name=" + this.name, config)
  103.                         .then((result) => {
  104.                             this.product = result.data;
  105.                         })
  106.                         .catch(function (error) {
  107.                             console.log(error);
  108.                         });
  109.                 },
  110.                 postProduct: function () {
  111.                     const config = {
  112.                         headers: { Authorization: "Bearer " + this.token }
  113.                     };
  114.  
  115.                     let obj = {
  116.                         name: this.name,
  117.                         price: parseFloat(this.price),
  118.                     };
  119.  
  120.                     axios.post(this.baseURI, obj, config).then((result) => {
  121.                         this.product = result.data;
  122.                     });
  123.                 },
  124.                 putProduct: function () {
  125.                     const config = {
  126.                         headers: { Authorization: "Bearer " + this.token }
  127.                     };
  128.  
  129.                     let obj = {
  130.                         name: this.name,
  131.                         price: parseFloat(this.price),
  132.                     };
  133.  
  134.                     axios.put(this.baseURI + "/" + this.id, obj, config).then((result) => {
  135.                         this.product = result.data;
  136.                     });
  137.                 },
  138.                 deleteProductById: function () {
  139.                     const config = {
  140.                         headers: { Authorization: "Bearer " + this.token }
  141.                     };
  142.  
  143.                     axios.delete(this.baseURI + "/" + this.id, config).then((result) => {
  144.                         console.log(result.status);
  145.                     });
  146.                 },
  147.             },
  148.         });
  149.     </script>
  150.  
  151. </body>
  152.  
  153. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement