<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"> 

<mapper namespace="kr.co.i2talk.sns">
<!-- 1. 추가  쿼리 메소드 작성 -->
    <select id="kr.co.i2talk.sns.listSnsAccessToken"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.listSnsAccessToken */
SELECT 
	ACCESS_TOKEN_ID,
	USR_ID,
	CLIENT_ID,
	ACCESS_TOKEN,
	REFRESH_TOKEN,
	ISS_DTTM,
	EXPR_DTTM,
	CRT_USR_ID,
	CRT_DTTM,
	MOD_USR_ID,
	MOD_DTTM
FROM
	sns_access_token
    </select>

    <select id="kr.co.i2talk.sns.viewSnsAccessToken"
		parameterType="Map"
		resultType="i2c.cmm.base.CommonResultMap">
	/* kr.co.i2talk.sns.viewSnsAccessToken */
SELECT 
	access_token_id,
	usr_id,
	client_id,
	access_token,
	refresh_token,
	iss_dttm,
	expr_dttm,
	crt_usr_id,
	crt_dttm,
	mod_usr_id,
	mod_dttm
FROM
	sns_access_token
WHERE
	access_token = #{access_token}
    </select>

    <insert id="kr.co.i2talk.sns.insertSnsAccessToken"
		parameterType="Map">
/* kr.co.i2talk.sns.insertSnsAccessToken */
INSERT INTO sns_access_token ( 
	access_token_id, usr_id, client_id, access_token, refresh_token, 
	iss_dttm, expr_dttm, crt_usr_id, crt_dttm, mod_usr_id, 
	mod_dttm)
VALUES (
	#{access_token_id}, #{usr_id}, #{client_id}, #{access_token}, #{refresh_token}, 
	#{iss_dttm}, #{expr_dttm}, #{crt_usr_id}, #{crt_dttm}, #{mod_usr_id}, 
	#{mod_dttm})
    </insert>
    
	<update id="kr.co.i2talk.sns.updateSnsAccessToken"
		parameterType="Map">
/* kr.co.i2talk.sns.updateSnsAccessToken */
UPDATE sns_access_token SET
	usr_id = #{usr_id}, 
	client_id = #{client_id}, 
	access_token = #{access_token}, 
	refresh_token = #{refresh_token}, 
	iss_dttm = #{iss_dttm}, 
	expr_dttm = #{expr_dttm}, 
	crt_usr_id = #{crt_usr_id}, 
	crt_dttm = #{crt_dttm}, 
	mod_usr_id = #{mod_usr_id}, 
	mod_dttm = #{mod_dttm}
WHERE
	access_token_id = #{access_token_id}
    </update>

	<delete id="kr.co.i2talk.sns.deleteSnsAccessToken"
		parameterType="Map">
/* kr.co.i2talk.sns.deleteSnsAccessToken */
DELETE FROM SNS_ACCESS_TOKEN 
 WHERE 1=1
  <if test="@i2c.cmm.util.StringUtil@isEmpty(access_token_id) == false">
  	AND access_token_id = #{access_token_id}
  </if>
  <if test="@i2c.cmm.util.StringUtil@isEmpty(access_token) == false">
  	AND access_token = #{access_token}
  </if>
	
    </delete>
<!-- 1. 추가  쿼리 메소드 작성 끝 -->

<!-- 2. 추가  쿼리 메소드 작성 -->

<!-- 2. 추가  쿼리 메소드 작성 끝 -->
    
	<update id="kr.co.i2talk.sns.revokeAccessTokenByClientId"
		parameterType="Map">
/* kr.co.i2talk.sns.revokeAccessTokenByClientId */
UPDATE sns_access_token SET
	expr_dttm = #{expr_dttm}, 
	mod_usr_id = #{mod_usr_id}, 
	mod_dttm = #{mod_dttm}
WHERE
	client_id = #{client_id}
    </update>
    
	<update id="kr.co.i2talk.sns.revokePreviousAccessToken"
		parameterType="Map">
/* kr.co.i2talk.sns.revokePreviousAccessToken */
UPDATE sns_access_token SET
	expr_dttm = #{expr_dttm}, 
	mod_usr_id = #{mod_usr_id}, 
	mod_dttm = #{mod_dttm}
WHERE usr_id = #{usr_id}
	and client_id = #{client_id}
	and expr_dttm is null
    </update>

</mapper>
