RestFul API

instargram ์‚ฌ์ง„ ํฌ์ŠคํŒ… API (4) follow์™€ like ์„œ๋น„์Šค ๊ตฌํ˜„ํ•˜๊ธฐ

567Rabbit 2024. 5. 31. 10:34

follow ์„œ๋น„์Šค ๊ตฌํ˜„ํ•˜๊ธฐ

 

 

 

 

app.py์— ์ถ”๊ฐ€ํ•˜๊ธฐ

from resources.follow import FollowResource

api.add_resource( FollowResource , '/follow/<int:followee_id>')

 

 

 

resources ํด๋”์— follow.py ํŒŒ์ผ ์ƒ์„ฑํ•ด์„œ ์ž…๋ ฅํ•˜๊ธฐ

from flask import request
from flask_jwt_extended import get_jwt_identity, jwt_required
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error

class FollowResource(Resource) :
    
    @jwt_required()
    def post(self, followee_id):  #ํŒ”๋กœ์šฐ ํ•˜๊ธฐ
        
        user_id = get_jwt_identity()
        
        try :
            connection = get_connection()
            query='''insert into follow
                    (followerId, followeeId)
                    values
                    (%s, %s);'''
            record = (user_id, followee_id)
            
            cursor = connection.cursor()
            cursor.execute(query, record)
            connection.commit()
            
            cursor.close()
            connection.close()
        
        except Error as e:
            if cursor is not None:  # null์ด ์•„๋‹ˆ๋ฉด
                cursor.close()
            if connection is not None:
                connection.close()
            return {'result': 'fail', 'error': str(e)}, 500  # 500 ์—๋Ÿฌ
        
        return {'result' : 'success'}
    
    
    @jwt_required()
    def delete(self, followee_id):  #์–ธํŒ”๋กœ์šฐํ•˜๊ธฐ
        
        user_id = get_jwt_identity()
        
        try :
            connection = get_connection()
            query='''delete from follow where followerId = %s and followeeId = %s;'''
            record = (user_id, followee_id)
            
            cursor = connection.cursor()
            cursor.execute(query, record)
            connection.commit()
            
            cursor.close()
            connection.close()
        
        except Error as e:
            if cursor is not None:  # null์ด ์•„๋‹ˆ๋ฉด
                cursor.close()
            if connection is not None:
                connection.close()
            return {'result': 'fail', 'error': str(e)}, 500  # 500 ์—๋Ÿฌ
        
        return {'result' : 'success'}

 

 

 

MySQL DB์—์„œ ๋ณด๋ฉด,

select * from follow;

 

 

 

 

 

 

 

 

 

 

like ์„œ๋น„์Šค ๊ตฌํ˜„ํ•˜๊ธฐ

 

 

 

 

app.py์— ์ถ”๊ฐ€ํ•˜๊ธฐ

from resources.like import LikeResource

api.add_resource( LikeResource, '/posting/<int:posting_id>/like')

 

 

 

 

resources ํด๋”์— like.py ํŒŒ์ผ ์ƒ์„ฑํ•ด์„œ ์ž…๋ ฅํ•˜๊ธฐ

from flask import request
from flask_jwt_extended import get_jwt_identity, jwt_required
from flask_restful import Resource
from mysql_connection import get_connection
from mysql.connector import Error

class LikeResource(Resource) :
    
    @jwt_required()
    def post(self, posting_id) :   #์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
        
        user_id = get_jwt_identity()
        
        try :
            connection = get_connection()
            query = '''insert into `like`
                        (postingId, userId)
                        values
                        (%s, %s);'''
            record = (posting_id, user_id)
            cursor = connection.cursor()
            cursor.execute(query, record)
            connection.commit()
            
            cursor.close()
            connection.close()
            
        except Error as e:
            if cursor is not None:  # null์ด ์•„๋‹ˆ๋ฉด
                cursor.close()
            if connection is not None:
                connection.close()
            return {'result': 'fail', 'error': str(e)}, 500  # 500 ์—๋Ÿฌ
        
        return {'result' : 'success'}
    
    
    @jwt_required()
    def delete(self, posting_id) :  #์ข‹์•„์š” ์ทจ์†Œ
        
        user_id = get_jwt_identity() 
        
        try :
            connection = get_connection()
            query = '''delete from `like` where postingId = %s and userId = %s; '''
            record = (posting_id, user_id)
            cursor = connection.cursor()
            cursor.execute(query, record)
            connection.commit()
            
            cursor.close()
            connection.close()
            
        except Error as e:
            if cursor is not None:  # null์ด ์•„๋‹ˆ๋ฉด
                cursor.close()
            if connection is not None:
                connection.close()
            return {'result': 'fail', 'error': str(e)}, 500  # 500 ์—๋Ÿฌ
        
        return {'result' : 'success'}

 

 

 

 

MySQL DB์—์„œ ๋ณด๋ฉด,

select * from `like`;