1- import { getFromLocalStorage } from "..//utils/storage.js" ;
1+ import { addToLocalStorage , getFromLocalStorage } from "..//utils/storage.js" ;
22
33import {
44 NOROFF_API_KEY ,
55 SINGLE_URL ,
66 PROFILE_URL ,
77 PROFILE_POSTS_URL ,
8+ FOLLOW_PROFILE_URL ,
9+ UNFOLLOW_PROFILE_URL ,
810} from "..//utils/const.js" ;
911
1012export async function fetchSinglePost ( ) {
@@ -38,6 +40,26 @@ export async function fetchUser() {
3840 const json = await response . json ( ) ;
3941 return json . data ;
4042 } catch ( error ) {
43+ window . location . href = "./index.html" ;
44+ console . log ( error ) ;
45+ }
46+ }
47+ export async function addFollowingToLocal ( ) {
48+ try {
49+ const accessToken = getFromLocalStorage ( "accessToken" ) ;
50+ const fetchOptions = {
51+ headers : {
52+ Authorization : `Bearer ${ accessToken } ` ,
53+ "X-Noroff-API-Key" : NOROFF_API_KEY ,
54+ } ,
55+ } ;
56+ const response = await fetch ( LOGGEDIN_PROFILE_URL , fetchOptions ) ;
57+ const json = await response . json ( ) ;
58+ const following = json . data . following ;
59+ addToLocalStorage ( "following" , following ) ;
60+ return json . data ;
61+ } catch ( error ) {
62+ window . location . href = "./index.html" ;
4163 console . log ( error ) ;
4264 }
4365}
@@ -54,6 +76,43 @@ export async function fetchUsersPosts() {
5476 const json = await response . json ( ) ;
5577 return json . data ;
5678 } catch ( error ) {
79+ window . location . href = "./index.html" ;
5780 console . log ( error ) ;
5881 }
5982}
83+ export async function followUser ( ) {
84+ try {
85+ const accessToken = getFromLocalStorage ( "accessToken" ) ;
86+ const fetchOptions = {
87+ method : "PUT" ,
88+ headers : {
89+ Authorization : `Bearer ${ accessToken } ` ,
90+ "X-Noroff-API-Key" : NOROFF_API_KEY ,
91+ } ,
92+ } ;
93+ const response = await fetch ( FOLLOW_PROFILE_URL , fetchOptions ) ;
94+ const json = response . json ( ) ;
95+ return json ;
96+ } catch ( error ) {
97+ alert ( "Could not follow user, please return to homepage" ) ;
98+ console . log ( error [ 0 ] . message ) ;
99+ }
100+ }
101+ export async function unfollowUser ( ) {
102+ try {
103+ const accessToken = getFromLocalStorage ( "accessToken" ) ;
104+ const fetchOptions = {
105+ method : "PUT" ,
106+ headers : {
107+ Authorization : `Bearer ${ accessToken } ` ,
108+ "X-Noroff-API-Key" : NOROFF_API_KEY ,
109+ } ,
110+ } ;
111+ const response = await fetch ( UNFOLLOW_PROFILE_URL , fetchOptions ) ;
112+ const json = response . json ( ) ;
113+ return json ;
114+ } catch ( error ) {
115+ alert ( "Could not follow user, please return to homepage" ) ;
116+ console . log ( error [ 0 ] . message ) ;
117+ }
118+ }
0 commit comments