- Python
- Django
- Django REST Framework
- Crontab
- JWT
- AWS EC2
- AWS RDS (MySQL)
- Git
- Gitkraken
- Notion
-
kakao access_token으로 자체 access, refresh token 발급
-
url
POST /login/new-token/
-
request
{ "access_token": "sBpMzzmjm7rKz3vY1Bs_lIFHuZu5Xt6iiTcjaAopb1UAAAF69oCtMw" } -
response
{ "refresh": "kpx3rJBWG7GdAGjm9LXlAvYLxB6TaP5HP5kWpT8AbjseEkqODJuIvGLLZJG6pu303TjXlJZjKejY4e6cKNrmU0nLzL84YD57mMXXS5Fpcb2ayLBYedTm6DK03TzxZyAHgYexojcPLZWuSz1T9yuh3xSffvSUPfufInNxuATn9SvdPx9AAopg4m3etJGKkjnZQbnCjyPE", "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjI4MjM4NTMwLCJqdGkiOiI5YmU0NWUzNWVlN2U0NTIzYWEyOGNmZDJiOGJjMGUzZSIsInVzZXJfaWQiOjMsInVzZXJuYW1lIjoiXHVjNzc0XHVjMjE4XHVjNWYwIiwidWlkIjoxODIzOTM3MzE3fQ.Y4wd-yKfm6z6YLijZX1e9twfQ3kt8nm0rL-LM81cJOQ" }
-
-
refresh token으로 access token 재발급
-
url
POST /login/token/refresh/
-
request
{ "user_id" : 1, "refresh_token" : "Ku88jzG2ZUR9UANJpVwtuGydhhYQsvs9k31Yd4h9FLSQ4NVzai3vaITbWQxXnbFzRc9GFRJDbCJ5IMwNWrdVmQP4pTTtc7nZoqewCD8rGjKgxWXZIQxy2ny1rxDCMJgzypDF2B2ZeMviVsphFONcrO5NzZgjq8OwpDDYZnm7vORbpQwTXbjKQifdgZNgwEkFMJuDbAI2" } -
response
{ "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjI3NDY4NDg0LCJqdGkiOiI3NzQ1ZDdmZjkwZDc0YzZlOTI2NDBjMmY2ODRjZDc4NSIsInVzZXJfaWQiOjEsInVzZXJuYW1lIjoiXHVjNzc0XHVjMjE4XHVjNWYwIiwidWlkIjoxODIzOTM3MzE3fQ.LG9Zhe7ICf8O8FgocI75tAY1J77eOR244RMaTUOu8Ks" }
-
-
회원탈퇴
-
url
DELETE /login/withdrawal/
-
request
-
response
{ "detail": "Successful withdrawal of members" }
-
-
studio 전체목록 조회(찜순)
-
url
GET /shops/studios/?page=1&address=&like=
-
request
Parameter Type Description pageintegerRequired. pagination addressstringRequired. 스튜디오 위치하는 구 필터링 likebooleanRequired. 찜한 studio concept만 볼지(true,false) -
response
{ "count": 3, "next": null, "previous": null, "results": [ { "id": 3, "name": "studio2", "address": "gangdong", "minprice": 600000, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202926771_02_eJFAEkq.png", "like": true }, { "id": 5, "name": "studio3", "address": "gwangjin", "minprice": 400000, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501_01_Os3pVhB.png", "like": false }, { "id": 1, "name": "studio1", "address": "gangnam", "minprice": 20000, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501.png", "like": true } ] }
-
-
beautyshop 전체목록 조회(찜순)
-
url
GET /shops/beautyshops/?page=1&address=&like=
-
request
Parameter Type Description pageintegerRequired. pagination addressstringRequired. 뷰티샵아 위치하는 구 필터링 likebooleanRequired. 찜한 studio concept만 볼지(true,false) -
response
{ "count": 3, "next": null, "previous": null, "results": [ { "id": 6, "name": "beautyshop3", "address": "mapo", "minprice": 700000, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202939803_01_9qKsgcL.png", "like": false }, { "id": 4, "name": "beautyshop2", "address": "gangdong", "minprice": 300000, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501_01_TIPlUXz.png", "like": false }, { "id": 2, "name": "beautyshop1", "address": "gangnam", "minprice": 300000, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202926771_02.png", "like": true } ] }
-
-
특정 studio,beautyshop 조회(concept제외)
-
url
GET /shops/1
-
request
-
response
{ "id": 1, "name": "studio1", "address_detail": "서울시 강남구 머시기 머시기", "minprice": 20000, "logo": "http://3.35.146.251:8000/media/bpp_U0iusS2.png", "profiles": [ "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501.png", "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501_01.png", "http://3.35.146.251:8000/media/KakaoTalk_20210802_202939803.png" ], "like": true, "map": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202926771_01.png", "kakaourl": "https://pf.kakao.com/_xgCxjfj", "affiliates": [ { "id": 4, "name": "beautyshop2", "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501_01_TIPlUXz.png" }, { "id": 6, "name": "beautyshop3", "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202939803_01_9qKsgcL.png" } ] }
-
-
특정 studio,beautyshop의 concept 조회(등록순)
-
url
GET /shops/1/concepts
-
request
-
response
{ "count": 2, "next": null, "previous": null, "results": [ { "id": 1, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202926771_02_5800kq5.png" }, { "id": 2, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501_uzHPVja.png" } ] }
-
-
특정 studio,beautyshop 찜 토글
-
url
PUT /shops/1/like
-
request
{ "change_to_like": false } -
response
{ "result": "shop like create" }
-
-
studio concept 전체 조회(찜순) : 컨셉북
-
url
GET /concepts/studios/?head_count=&gender=&background=&prop=&dress=&page=&like=
-
request
Parameter Type Description head_countintegerRequired. 1,2,3 genderstringRequired. man,woman backgroundstringRequired. white,black,chromatic,etc,outside propstringRequired. health,mini,etc dressstringRequired. athleisure,swimsuit,underwear,etc pagestringRequired. 조회할 페이지(1,2,3...) likebooleanRequired. 찜한 studio concept만 볼지(true,false) -
response
{ "count": 3, "next": null, "previous": null, "results": [ { "id": 2, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202947501_uzHPVja.png", "shop": { "id": 1, "name": "studio1" }, "like": false }, { "id": 1, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202926771_02_5800kq5.png", "shop": { "id": 1, "name": "studio1" }, "like": true }, { "id": 3, "profile": "http://3.35.146.251:8000/media/KakaoTalk_20210802_202926771.png", "shop": { "id": 3, "name": "studio2" }, "like": false } ] }
-
-
특정 studio concept 찜 토글
-
url
PUT /concepts/studios/1/like
-
request
{ "change_to_like": true } -
response
{ "result": "shop like create" }
-
-
샵 문의중/확정 전체조회
-
url
GET /reservations?inquiry=
-
request
Parameter Type Description inquirybooleanRequired. 문의중 조회면 true, 확정&만료 조회면 false -
response
{ "remaining_days": 16, "results": [ { "id": 3, "state": 0, "reserved_date": null, "shop": { "id": 2, "shop_type": 1, "name": "beautyshop1", "logo": "http://3.35.146.251:8000/media/bpp_r5ZQYqs.png" } } ] }
-
-
샵 문의중 추가
-
url
POST /reservations/shops/:shop_id
-
request
-
response
{ "result": "reservation create" }
-
-
샵 예약확정 날짜받기
-
url
PATCH /reservations/:reservation_id
-
request
{ "reserved_date": "2021-05-15" } -
response
{ "detail": "reserved_date input success" }
-
-
샵 문의중 취소
-
url
DELETE /reservations/:reservation_id
-
request
-
response
{ "detail": "reservation delete success" }
-
.
├── Dockerfile
├── README.md
├── concept
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── serializers.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── login
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── serializers.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
├── requirements.txt
├── reservation
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── cron.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── serializers.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── secrets.json
└── shop
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── serializers.py
├── tests.py
├── urls.py
└── views.py