Closed psy-choi closed 1 year ago
요청 성공!
성공!
변경 사항 result.status -> result['status']
if result['status'] != "PROCESSING":
raise HTTPException(status_code=400, detail= "매칭에 대한 처리가 이미 진행되었습니다.")
MongoDB의 데이터를 가져올 때에는 하나의 dict 타입으로 가져오게 된다.
DB에서 변경되는 것 확인
Redis 파일을 직접 가져오게 되면 byte 형태로 나타나는 오류를 알게 되었습니다. 그래서 해당 Redis의 파일을 가져오기 위해서 utf-8으로 디코딩 해주는 과정을 추가하였습니다.
실제로 터미널에 저렇게 찍혔습니다.
class Redis:
def __init__(self, name):
self.name = name
self.redis = redis.Redis(host=os.getenv("REDIS_ENDPOINT"), port=6379, charset="utf-8" ,db=0)
def getToken(self):
return self.redis.hget(self.name, "firebaseToken").**decode('utf-8')**
카페에 어떤 매칭에 대해서 수락을 누를 경우의 경우이다. 실제로 사용자 firebase에 수락이 되었다고 정보가 들어온 것을 볼 수 있다.
사용자의 앱
다른 취소된 카페의 어플
direction : cancel
로 요청이 온 것을 봤을 때 취소도 확실히 된 것을 확인할 수 있었다.
"direction" : "cancel"
위 코드를 통해서 취소가 확실히 된 것을 확인할 수 있었다.
redisset의 삭제
카페에게 fcm로 취소 되었음을 알린다.
90초 이내에 취소를 보냈을 경우
90초 이후에 취소를 보냈을 경우
DB에서 cancel로 바뀌는 것 확인
issue
if current_time - matching["matchingTime"]> datetime.timedelta(seconds=10):
# TODO 결제 모듈
return MyCustomResponse(1, "매칭 거절에 성공했습니다! 보증금이 환급되지 않습니다.")
else:
return MyCustomResponse(1, "매칭 거절에 성공했습니다! 보증금이 환급됩니다.")
실제로 matching의 matchingTime과 현재 시간은 'datetime'에 해당하는데, 해당 데이터 타입을 연산하는 기본 단위가 datatime.timedelta 라고 한다.
실제로 삭제된 것을 볼 수 있다.
모든 카페에서 해당 api를 눌렀을 경우
All Clear
목표
확인할 API