diff --git a/app/Http/Controllers/WishesController.php b/app/Http/Controllers/WishesController.php
new file mode 100644
index 0000000..0d8f8cc
--- /dev/null
+++ b/app/Http/Controllers/WishesController.php
@@ -0,0 +1,45 @@
+get();
+ }
+
+ public function create(Request $request)
+ {
+ $request->validate([
+ 'user_id' => 'required|exists:users,id',
+ 'name' => 'required|string|max:256',
+ 'price' => 'nullable|numeric',
+ 'url' => 'nullable|url',
+ ]);
+
+ $wish = Wish::create($request->all());
+ return response()->json($wish, 201);
+ }
+
+ public function update(Request $request, Wish $wish)
+ {
+ $request->validate([
+ 'name' => 'required|string|max:256',
+ 'price' => 'nullable|numeric',
+ 'url' => 'nullable|url',
+ ]);
+
+ $wish->update($request->all());
+ return response()->json($wish);
+ }
+
+ public function destroy(Wish $wish)
+ {
+ $wish->delete();
+ return response()->json(null, 204);
+ }
+}
diff --git a/app/Models/Wish.php b/app/Models/Wish.php
new file mode 100644
index 0000000..6f2b42d
--- /dev/null
+++ b/app/Models/Wish.php
@@ -0,0 +1,16 @@
+belongsTo(User::class);
+ }
+}
diff --git a/resources/css/app.css b/resources/css/app.css
index e69de29..c1b8af1 100644
--- a/resources/css/app.css
+++ b/resources/css/app.css
@@ -0,0 +1,9 @@
+.link-no-decor {
+ color: white;
+ text-decoration: none;
+ cursor: pointer;
+}
+
+.link-no-decor:hover {
+ color: #093160;
+}
diff --git a/resources/store/user.js b/resources/store/user.js
index 02542cf..29eae75 100644
--- a/resources/store/user.js
+++ b/resources/store/user.js
@@ -6,8 +6,6 @@ export const useUserStore = defineStore('user', {
user: null,
token: localStorage.getItem('auth_token') || null,
}),
- // could also be defined as
- // state: () => ({ count: 0 })
actions: {
setUser(user) {
this.user = user;
diff --git a/resources/store/wish.js b/resources/store/wish.js
new file mode 100644
index 0000000..100c4d7
--- /dev/null
+++ b/resources/store/wish.js
@@ -0,0 +1,47 @@
+import {defineStore} from 'pinia';
+import axios from "axios";
+
+export const useWishStore = defineStore('wish', {
+ state: () => ({
+ wishesList: []
+ }),
+ actions: {
+ pushWish(wish){
+ this.wishesList.push(wish);
+ },
+ async getUserWishes(user_id, token){
+ let result = null;
+ await axios.get(`/api/wish/user_wishes/${user_id.toString()}`,
+ {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ token: token
+ }
+ }
+ ).then((response)=>{
+ result = response.data;
+ });
+ return result;
+ },
+ async create(user_id, name, price, url, token){
+ let newWish = null;
+ await axios.post(`/api/wish/create`,
+ {
+ user_id: user_id,
+ name: name,
+ price: price,
+ url: url
+ },
+ {
+ headers: {
+ Authorization: `Bearer ${token}`,
+ token: token
+ },
+ }
+ ).then((response)=>{
+ newWish = {status: response.status, statusText: response.statusText, data: response.data};
+ });
+ return newWish;
+ }
+ },
+})
diff --git a/resources/views/Welcome.vue b/resources/views/Welcome.vue
index 0d68a9b..bd842a9 100644
--- a/resources/views/Welcome.vue
+++ b/resources/views/Welcome.vue
@@ -68,14 +68,4 @@ export default {
color: white;
}
-.link-no-decor {
- color: white;
- text-decoration: none;
- cursor: pointer;
-}
-
-.link-no-decor:hover {
- color: #093160;
-}
-
diff --git a/resources/views/Wishlist/Wishlist.vue b/resources/views/Wishlist/Wishlist.vue
index ff537ca..b0b2f61 100644
--- a/resources/views/Wishlist/Wishlist.vue
+++ b/resources/views/Wishlist/Wishlist.vue
@@ -1,11 +1,36 @@
- Hello world!
+ Hello world!