ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

Controller


FollowController

//ํŒ”๋กœ์šฐ ์š”์ฒญ 
@PostMapping("/follow/{id}")
public String follow(@PathVariable String id, HttpSession session, Model model) throws Exception {
	
	logger.info("/follow/" + id + " : ํŒ”๋กœ์šฐ ์š”์ฒญ ");
	
	
	Object object = session.getAttribute("login");
	UsersVO activeUser = (UsersVO)object;
	UsersVO passiveUser = usersService.inquiryOfUserById(id);
	
	FollowVO follow = new FollowVO();
	follow.setActiveUser(activeUser.getUserNo());
	follow.setPassiveUser(passiveUser.getUserNo());
	
	followService.follow(follow);
	
	
	return "FollowOK";
}

ํŒ”๋กœ์šฐ ์š”์ฒญ์€ ํŒ”๋กœ์šฐํ•  ์œ ์ €์˜ id๋ฅผ ๊ฐ€์ง€๊ณ  ๋„˜์–ด๊ฐ„๋‹ค. ๋กœ๊ทธ์ธ์„ธ์…˜์„ ๊ฐ€์ ธ์™€์„œ activeUser์— ๋‹ด๊ณ  ํŒ”๋กœ์šฐํ•  ์œ ์ € id๋กœ ํ•ด๋‹น ์œ ์ €์˜ ์ „์ฒด์ •๋ณด๋ฅผ ์กฐํšŒํ•ด์„œ passiveUser์— ๋‹ด๋Š”๋‹ค. FollowVO ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๊ฐ’์„ ์ง€์ •ํ•ด ์ค€๋’ค DB์— ์ €์žฅํ•œ๋‹ค.

 

//์–ธํŒ”๋กœ์šฐ ์š”์ฒญ
@PostMapping("/unfollow/{id}")
public String unfollow(@PathVariable String id, HttpSession session, Model model) throws Exception {
	
	logger.info("/unfollow/" + id + " : ์–ธํŒ”๋กœ์šฐ ์š”์ฒญ ");

	Object object = session.getAttribute("login");
	UsersVO activeUser = (UsersVO)object;
	UsersVO passiveUser = usersService.inquiryOfUserById(id);
	
	FollowVO follow = new FollowVO();
	follow.setActiveUser(activeUser.getUserNo());
	follow.setPassiveUser(passiveUser.getUserNo());
	
	followService.unfollow(follow);
	
	
	return "UnFollowOK";
}

ํŒ”๋กœ์šฐ๊ธฐ๋Šฅ๊ณผ ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•œ๋‹ค. DB์ชฝ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด์„œ DB์— ์ €์žฅ๋œ ํŒ”๋กœ์šฐ๊ฐ€ ์‚ญ์ œ๊ฐ€ ๋œ๋‹ค.

 

 

 

 

 

Service


FollowService

@Override
public void follow(FollowVO follow) {
	followDAO.follow(follow);
}

@Override
public void unfollow(FollowVO follow) {
	followDAO.unfollow(follow);
}

 

 

 

 

 

 

View


personal-list.jsp

$('#follow-btn').on('click', function() {
	follow(true);
});

$('#unfollow-btn').on('click', function() {
	follow(false);
});

function follow(check) {
	if(check) {
		$.ajax({
			type: "POST",
			url: "/myapp/follow/${user.id}",
			headers: {
				"Content-Type": "application/json",
				"X-HTTP-Method-Override": "POST"
			},
			success: function(result) {
				console.log("result : " + result);
				if(result === "FollowOK"){
					$(".follow").html('<button class="followBtn" id="unfollow-btn">์–ธํŒ”๋กœ์šฐ</button>');
					location.href="/myapp/post/${user.id}";
				}
			}
		});
	} else {
		$.ajax({
			type: "POST",
			url: "/myapp/unfollow/${user.id}",
			headers: {
				"Content-Type": "application/json",
				"X-HTTP-Method-Override": "POST"
			},
			success: function(result) {
				console.log("result : " + result);
				if(result === "UnFollowOK"){
					$(".follow").html('<button class="followBtn" id="follow-btn">ํŒ”๋กœ์šฐ</button>');
					location.href="/myapp/post/${user.id}";
				}
			}
		});
	}
}

 

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€