Skip to content

travel 여행 관련 api 명세서

xxeol2 edited this page Jul 16, 2021 · 15 revisions

/travel

method route info 사용뷰
GET /travel 유저 기간 별 여행 조회 메인 뷰
POST /travel 유저 여행 생성 여행 생성 뷰
GET /travel/group/:inviteCode 여행 참여, 여행 정보 조회 참여하는 여행 정보가 맞나요? 뷰, 각종 여행 정보 조회시 사용
GET /travel/:groupId 여행 정보 조회 여행 정보 조회 시 사용
POST /travel/:groupId 여행 참여, 여행에 멤버 추가 참여코드 입력 후 홈으로 이동 시
PATCH /travel/:groupId 여행 편집 여행 편집 뷰

[GET] /travel

명세서 보기

Request-Header

Name Type Description
x-auth-token String user jwt token

Respone-Body

Name Type Description
when String nowTravels, comeTravels, endTravels
group Array 다가오는 여행, 진행중인 여행, 종료 여행 저장 배열
_id ObjectId 여행 그룹 고유 id
startDate Date 여행 시작 날짜
endDate Date 여행 종료 날짜
travelName String 여행 이름
image String 여행 대표 이미지
destination String 목적지
members Array 참여 멤버 이름

성공

여행 없을 시 빈 배열 반환

{
    "status": 200,
    "success": true,
    "message": "여행 조회 성공",
    "data": [
        {
            "when": "nowTravels",
            "group": []
        },
        {
            "when": "comeTravels",
            "group": []
        },
        {
            "when": "endTravels",
            "group": []
        }
    ]
}
{
    "status": 200,
    "success": true,
    "message": "여행 조회 성공",
    "data": [
        {
            "when": "nowTravels",
            "group": [
                {
                    "_id": "60e44898dec4931ad5864079",
                    "startDate": "2021-7-4-7:40",
                    "endDate": "2021-7-8-7:40",
                    "travelName": "한상진 김태현 신혼 여행",
                    "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/4.png",
                    "destination": "제주도",
                    "members": [
                        "채정아", "김다운", "이민재"
                    ]
                }
            ]
        },
        {
            "when": "comeTravels",
            "group": [
                {
                    "_id": "60e44920dec4931ad5864086",
                    "startDate": "2021-7-4-17:40",
                    "endDate": "2021-7-8-20:6",
                    "travelName": "두리번 앱잼 끝 여행",
                    "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/4.png",
                    "destination": "미국",
                    "members": [
                        "채정아", "변주현", "김민영", "정설희", "박유진"
                    ]
                },
                {
                    "_id": "60e449a7dec4931ad5864094",
                    "startDate": "2021-7-4-3:3",
                    "endDate": "2021-12-18-10:12",
                    "travelName": "제주도 한달 살기 여행",
                    "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/4.png",
                    "destination": "미국",
                    "members": [
                        "채정아"
                    ]
                }
            ]
        },
        {
            "when": "endTravels",
            "group": [
                {
                    "_id": "60e43ae20dec2a15c9b4192f",
                    "startDate": "2021-7-4-7:40",
                    "endDate": "2021-7-8-7:40",
                    "travelName": "두리번 강릉 여행",
                    "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/4.png",
                    "destination": "강릉",
                    "members": [
                        "정설희", "채정아"
                    ]
                }
            ]
        }
    ]
}

실패 - 500 서버 내부 에러

{
    "status": 500,
    "success": false,
    "message": "여행 조회 실패"
}

실패 - 404 유저 정보 없음

{
	"status": 404,
	"success": false,
	"message": "유효하지 않은 사용자"
}

실패 - 404 Not Found

{
    "status": 404,
    "success": false,
    "message": "잘못된 그룹 id입니다."
}

[POST] /travel

명세서 보기

Request-Header

Name Type Description
x-auth-token String user jwt token

Request-Body

Name Type Description
travelName String 여행 이름
`destination String 목적지
startDate String 여행 시작 날짜
endDate String 여행 종료 날짜
imageIndex Number 사용자가 몇번 째 사진 선택 했는지 0-index
{
	"travelName": "두리번 강릉 여행",
	"destination": "강릉",
	"startDate": "2021-07-17",
	"endDate": "2021-07-18",
	"imageIndex": 1
}

Respone-Body

Name Type Description
inviteCode String 참여 코드

성공

{
	"status": 200,
	"success": true,
	"message": "참여 코드 생성 성공",
	"data": {
		"inviteCode": "1Q2W3E"
	}
}

실패 - 500 서버 내부 에러

{
    "status": 500,
    "success": false,
    "message": "서버 내부 오류"
}

실패 - 400 Bad Request

{
    "status": 400,
    "success": false,
    "message": "필요한 값이 없습니다"
}

[GET] /travel/group/:inviteCode

명세서 보기

Params

Name Description
inviteCode 해당 여행 그룹 고유 참여 코드

Request-Header

Name Type Description
x-auth-token String user jwt token

Respone-Body

Name Type Description
groupId ObjectId 그룹 고유 id
travelName String 여행 이름
host String 여행 생성 멤버 이름
destination String 목적지
startDate String 여행 시작 날짜
endDate String 여행 종료 날짜
image String 여행 대표 이미지

성공

{
    "status": 200,
    "success": true,
    "message": "참여 코드로 여행 찾기 성공",
    "data": {
        "groupId": "60ebfdfabc1ffc1325a15f22",
        "travelName": "배고픈 여행",
        "host": "채정아",
        "destination": "우리 집",
        "startDate": "2021-8-21-0:0",
        "endDate": "2021-8-24-0:0",
        "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/1.png"
    }
}

실패 - 500 서버 내부 에러

{
    "status": 500,
    "success": false,
    "message": "서버 내부 오류"
}

실패 - 404 Not Found

{
    "status": 404,
    "success": false,
    "message": "잘못된 참여코드입니다."
}

[GET] /travel/:groupId

명세서 보기

Params

Name Description
groupId 해당 여행 그룹 고유 id

Request-Header

Name Type Description
x-auth-token String user jwt token

Respone-Body

Name Type Description
travelName String 여행 이름
startDatee String 여행 시작 날짜
endDate String 여행 종료 날짜
inviteCode String 여행 참여 코드
destination String 목적지
members Array 멤버 이름, 프로필 이미지 저장 배열

성공

{
    "status": 200,
    "success": true,
    "message": "여행 정보 조회 성공",
    "data": {
        "travelName": "두리번 제주도 여행",
        "startDate": "2021-8-21-0:0",
        "endDate": "2021-8-24-0:0",
        "inviteCode": "CGw9b4",
        "destination": "제주도",
        "members": [
            {
                "name": "채정아",
                "profileImage": "http://k.kakaocdn.net/dn/oNADc/btq8mY7WWS2/kfNGuuvyiiOrXzjpK6ff90/img_640x640.jpg"
            },
            {
                "name": "정설희",
                "profileImage": "http://k.kakaocdn.net/dn/oNADc/btq8mY7WWS2/kfNGuuvyiiOrXzjpK6ff90/img_640x640.jpg"
            }
        ]
    }
}

실패 - 500 서버 내부 에러

{
    "status": 500,
    "success": false,
    "message": "서버 내부 오류"
}

실패 - 404 Not Found

{
    "status": 404,
    "success": false,
    "message": "잘못된 그룹 id입니다."
}

실패 - 400 Bad Request

{
    "status": 400,
    "success": false,
    "message": "필요한 값이 없습니다."
}

[POST] /travel/:groupId

명세서 보기

Params

Name Description
groupId 해당 여행 그룹 고유 id

Request-Header

Name Type Description
x-auth-token String user jwt token

Respone-Body

Name Type Description
_id ObjectId 여행 그룹 고유 id
members Array 여행 멤버 id, 이름, 프로필 이미지 저장 배열
schedules ObjectId 여행 일정 DB 고유 id
boards ObjectId 여행 보드 DB 고유 id
wishes ObjectId 여행 위시리스트 DB 고유 id
inviteCode String 여행 그룹 참여 코드
travelName String 여행 이름
destination String 목적지
startDate String 여행 출발 날짜
endDate String 여행 종료 날짜
image String 여행 대표 이미지

성공

{
    "status": 200,
    "success": true,
    "message": "여행 참여 성공",
    "data": {
        "members": [
            {
                "_id": "60e350f58409e94d5ac2bf7c",
                "name": "채정아",
                "profileImage": "http://k.kakaocdn.net/dn/oNADc/btq8mY7WWS2/kfNGuuvyiiOrXzjpK6ff90/img_640x640.jpg"
            },
            {
                "_id": "60e350f58409e94d5ac2bf7c",
                "name": "채정아",
                "profileImage": "http://k.kakaocdn.net/dn/oNADc/btq8mY7WWS2/kfNGuuvyiiOrXzjpK6ff90/img_640x640.jpg"
            }
        ],
        "_id": "60ebfd1cbc1ffc1325a15f1c",
        "schedules": "60ec0114bc1ffc1325a15f35",
        "boards": null,
        "wishes": null,
        "tendencies": null,
        "host": "60e350f58409e94d5ac2bf7c",
        "inviteCode": "C2Yf4Y",
        "travelName": "물넘어 제주 속 두리번",
        "destination": "제주도 서귀포시",
        "startDate": "2021-07-29T00:00:00.000Z",
        "endDate": "2021-08-02T00:00:00.000Z",
        "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/1.png",
        "__v": 2
    }
}

실패 - 500 서버 내부 에러

{
    "status": 500,
    "success": false,
    "message": "서버 내부 오류"
}

실패 - 404 Not Found

{
    "status": 404,
    "success": false,
    "message": "잘못된 그룹 id입니다."
}

실패 - 400 Bad Request

{
    "status": 400,
    "success": false,
    "message": "필요한 값이 없습니다."
}

실패 - 409 Conflict (이미 참여하고 있는 유저)

{
    "status": 409,
    "success": false,
    "message": "해당 그룹에 속한 사용자"
}

[PATCH] /travel/:groupId

명세서 보기

Params

Name Description
groupId 해당 여행 그룹 고유 id

Request-Header

Name Type Description
x-auth-token String user jwt token

Request-Body

Name Type Description
travelName String 여행 이름
destination String 목적지
startDate String 여행 시작 날짜
endDate String 여행 종료 날짜
imageIndex Number 여행 대표 이미지 선택한 순서 (0-index)
{
	"travelName": "두리번 회고 여행",
	"destination": "강릉 바닷가",
	"startDate": "2021-07-21", 
	"endDate": "2021-07-24",
	"imageIndex": 4
}

Respone-Body

Name Type Description
travelName String 여행 이름
destination String 목적지
startDate String 여행 출발 날짜
endDate String 여행 종료 날짜
image String 여행 대표 이미지

성공

{
    "status": 200,
    "success": true,
    "message": "여행 수정 성공",
    "data": {
        "travelName": "두리번 회고 여행",
        "destination": "강릉 바닷가",
        "startDate": "2021-7-21-0:0",
        "endDate": "2021-7-24-0:0",
        "image": "https://dooribon.s3.ap-northeast-2.amazonaws.com/5.png"
    }
}

실패 - 500 서버 내부 에러

{
    "status": 500,
    "success": false,
    "message": "서버 내부 오류"
}

실패 - 404 id Not Found

{
    "status": 404,
    "success": false,
    "message": "Not Found"
}

실패 - 400 Bad Request

{
    "status": 400,
    "success": false,
    "message": "필요한 값이 없습니다."
}