Giter VIP home page Giter VIP logo

back-end's Introduction

Freemily 서버

기술 스택

  • Java 11
  • Spring boot 2.6.7
  • MySQL 8
  • SpringFox Swagger UI 3.0.0
  • AWS ec2
  • AWS RDS

back-end's People

Contributors

m04j00 avatar srin23 avatar yeonwoo1125 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

yeonwoo1125

back-end's Issues

[심부름] 심부름을 추가하는 기능

기능 설명

  • 심부름의 제목과 내용으로 심부름을 추가하는 기능

[Post] groups/{groupId}/quests/{userId}

request

{
    "questTitle" : "Quest Title",
    "questContent" : "Quest Content"
}

response

200 - Ok
심부름 추가가 정상적으로 처리된 경우

409 - Conflict
값이 모두 들어오지 못한 경우

소요 시간

  • 예상 완료 시간 : 1H
  • 실제 소요 시간 : 30M

진행 사항

image

[집안일] 당번을 삭제하는 기능

기능 설명

[DELETE] groups/{groupId}/chores/{choreId}

response

200 - ok

  • 당번이 제대로 삭제된 경우

404 - not found

  • group Id가 존재하지 않을 경우
  • chore id가 존재하지 않을 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

[회원] 회원 정보 수정을 위한 비밀번호 인증

기능 설명

  • 회원 정보 수정하기 전, 회원 인증을 위한 비밀번호 확인

[POST]/users/{userId}/check

request

{
	"userPassword" : "User Password"
}

response

200 - Ok
- 수정이 정상적으로 처리된 경우

403 - Forbidden
- 회원 아이디와 PW가 일치하지 않는 경우

404 - Not Found
- 존재하지 않는 아이디인 경우

소요 시간

  • 예상 완료 시간 : 1H
  • 실제 소요 시간 : 1H

진행 사항

  • 비밀번호 해싱
  • 회원 수정에서 비밀번호 수정 제거하기

[그룹] 그룹에 가입하는 기능

기능 설명

  • 존재하는 유저가 그룹에 가입하는 기능

[POST] /groups/join

request

{
	"groupInviteCode" : "",
	"userId" : 1	
}

response

200 - Ok
- 그룹 가입이 정상적으로 처리된 경우

404 - Not Found
- 존재하지 않는 그룹 초대코드일 경우
- 존재하지 않는 회원아이디일 경우

400 - Bad Request
- DTO 객체 유효성 검사

소요 시간

  • 예상 완료 시간 : 1H
  • 실제 소요 시간 : 1H

진행 사항

  1. DTO 유효성 검사
  2. 회원 존재 여부 확인
  3. GroupInviteCode에 해당하는 그룹 존재 여부 확인
  4. 회원에 Group 정보 업데이트

[심부름] 심부름 완료 여부를 처리하는 기능

심부름 완료 처리

[POST] groups/{groupId}/quests/{questId}/complete

request

{
	"requestId" : 0
}

200 - Ok

  • 심부름 완료 처리가 된 경우

400 - bad request

  • 값이 모두 안 들어온 경우

404 - Not Found

  • groupId가 존재하지 않을 시
  • questId가 존재하지 않거나 group에 속하지 않는 경우
  • requestId가 존재하지 않거나 group에 속하지 않는 경우

409 - Conflict

  • questrequestId가 request body의 requestId와 일치하지 않는 경우
  • questacceptUserId-1인 경우
  • completeChecktrue인 경우

[회원] 회원이 자신의 정보를 수정하는 기능

기능 설명

  • 회원이 자신의 정보를 수정하는 기능
  • 아래 request 형식은 바뀌지 않으며, 변경된 사항만 수정하여 응답을 전송한다.

[PUT]/users/{userId}

request

{
	"userName" : "User Name",
	"userPassword" : "User Password"
	"userImageName" : "User Image"
}

response

200 - Ok
- 수정이 정상적으로 처리된 경우

404 - Not Found
- 존재하지 않는 ID일 경우

409 - Conflict
- 값이 모두 안 들어온 경우

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 1H 30M

진행 사항

  • 회원 수정 구현하기

[심부름] 심부름을 삭제하는 기능

기능 설명

  • 심부름을 삭제하는 기능
  • 해당 심부름을 요청한 회원만 심부름을 삭제할 수 있다.

[Delete] groups/{groupId}/quests/{questId}/{request_user_id}

request

심부름 삭제 요청

response

200 - Ok
심부름 삭제가 정상적으로 처리된 경우

404 - Not Found
값이 존재하지 않는 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

[식재료] 식재료 삭제(일괄) 기능 구현

기능 설명

  • 식재료의 id를 받아 삭제하는 기능
  • 일괄이든 하나든 해당 API에서 삭제

[DELETE] /group/{groupId}/iningredients

request

{
	"data" : [
		{
			"ingredientId" : 0
		},
		{
			"ingredientId" : 0
		},
		{
			"ingredientId" : 0
		}
	]
}

response

200 - ok

  • 정상적으로 삭제가 된 경우

404 - not found

  • group Id가 존재하지 않을 경우
  • 해당하는 식재료의 id가 존재하지 않을 경우
  • 해당하는 group에 있는 식재료가 아닐 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

  • 반복문 코드 정리 -> 리팩토링에서 수정
  • 넘어온 값이 없는 경우 예외 처리

[수정] 집안일 날짜 관련 기능 수정

To Do

  • FAIL은 당번 날짜의 하루가 지나도 인증 요청을 하지 않았거나, 요청에 대한 응답을 받지 못했을 경우, 해당 집안일을 하지 않았다 생각하고, FAIL할당
  • 당번 응답 시, SUCCESS로만 응답 가능(만약, 당번 활동 인증을 원하지 않을 시, 아무 값도 들어오지 않도록)
  • 당번 생성 시, 입력된 날짜가 현재보다 과거일 경우, 예외처리(Conflict)

Content

  • 하루 안에 해당 집안일에 대해 당번이 인증 요청을 보내고, 다른 가족 구성원 중 한 명이라도 인정을 누르면 해당 집안일은 성공된 집안일
  • 하루 안에 해당 집안일에 대해 당번이 인증 요청을 보내지 않거나, 인증 요청을 보냈지만 가족 구성원 중 아무도 하루 안에 인정을 누르지 않으면 해당 집안일은 실패한 집안일
  • 시간이 지난 집안일은 SUCCESS 또는 FAIL뿐이어야 한다.

[회원] 회원을 탈퇴하는 기능

기능 설명

  • 존재하는 회원이 서비스를 탈퇴하는 기능

[Delete]/users/{userId}

request

{
	"userPassword" : "User Password"
}

response

200 - Ok
- 회원 탈퇴가 정상적으로 처리된 경우

400 - Bad Request
- 비밀번호가 맞지 않는 경우

404 - Not Found
- 존재하지 않는 ID인 경우

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 2H 30M

진행 사항

  • 비밀번호 해싱하여 현재 비밀번호와 확인
  • 예외처리를 위한 상태 코드 공부

[리팩토링] 회원 생성 기능 관련 리팩토링

  • signUp 메소드 이름 -> createUser 변경
  • UserSignUpDto 이름 -> CreateUserRequest 변경
  • 유저 엔티티 생성 시 builder 매개변수 순서 변경
  • 유저 엔티티 생성 시 이미지 이름은 기본값 설정하지 않고 생성할 때 "" 빈 값으로 넣기
  • new!! 닉네임 변수 관련 추가 (원래는 없애려고 했지만 있는 걸로 변경)
  • user entity에 nickname 컬럼 추가
  • Exception 처리 - HttpStatus 확인

[회원] 로그인 하는 기능

기능 설명

  • 회원의 이메일과 비밀번호를 이용해 로그인하는 기능

[Post]/users/login

request

{
	"userEmail" : "User Email",
	"userPassword" : "User Password"
}

response

{
	"userId" : "User Id",
	"userName" : "User Name",
	"userNickname" : "User Nickname",
	"userEmail" : "User Email"
}


200 - Ok
- 로그인이 정상적으로 처리된 경우

400 - Bad Request
- Email의 Password가 아닌 경우
- 값이 모두 안 들어온 경우

404 - Not Found
- 존재하지 않는 Email일 경우

소요 시간

  • 예상 완료 시간 : 2H 30M
  • 실제 소요 시간 : 2H

진행 사항

  • 이메일 형식 검증
  • 패스워드 해싱하여 비밀번호 검증하기

[리팩토링] 그룹 관련 기능 리펙토링

  • createGroup, joinGroup에 url 파라미터로 userId 추가하기 (기존에는 request body에 userId가 포함되어 있었음)
  • 그룹 가입할 때 유저가 이미 그룹이 있는 상태라면 예외 발생하기

[심부름] 심부름 리팩토링

  • QuestResponse에서 createdDate, modifiedDate, QusetContent 변수 삭제
  • 심부름 목록 반환할 때 modifiedAt 내림차순으로 정렬
  • 심부름 삭제할 때 수락자가 있을 경우 예외처리

[그룹] 그룹을 생성하는 기능

기능 설명

  • 그룹을 생성하는 기능

[POST] /groups

request

{
	"userId" : 1,
	"groupName" : "group name"
}

response

200 - Ok
- 그룹 생성이 정상적으로 처리된 경우

소요 시간

  • 예상 완료 시간 : 1H
  • 실제 소요 시간 : 2H

진행 사항

  1. DTO 객체의 데이터 형식이 올바른지 확인
  2. User Id가 존재하는지 확인
  3. 초대 코드 생성
  4. 그룹 엔티티 생성 및 저장
  5. 유저 엔티티에 그룹 컬럼 업데이트

[식재료] 식재료 일괄 수정 기능

기능 설명

  • 식재료의 id와 수량을 받아 수정하는 기능
  • 수량이 0일 경우 식재료 삭제

[DELETE] /group/{groupId}/iningredients

request

{
	"data" : [
		{
	           "ingredientId" : 1,
                   "ingredientCount" : "1g"
		},
		{
		    "ingredientId" : 2,
                    "ingredientCount" : "100개"
		},
		{
		     "ingredientId" : 3,
                     "ingredientCount" : "3봉지"
		}
	]
}

response

200 - ok

  • 정상적으로 수정된 경우

404 - not found

  • group Id가 존재하지 않을 경우
  • 해당하는 식재료의 id가 존재하지 않을 경우
  • 해당하는 group에 있는 식재료가 아닐 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

  • 식재료가 0일 경우 삭제

[왕] 이 달의 집안일별 왕을 계산하는 기능

기능 설명

[GET] /groups/{groupId}/kings/chores?date=

response

{
	"data" : [
		{
			"category" : "설거지",
			"userId" : 1,
			"choresCount" : 3	
		},
	  {
			"category" : "요리",
			"userId" : 1,
			"choresCount" : 3	
		}
	]
}

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : 3H

진행 사항

  • 왕이 없을 경우 null처리
  • HashMap 사용해서 구현

[식재료] 식재료의 전체 목록을 반환하는 기능

기능 설명

  • 식재료의 목록을 반환하는 기능
  • 카테고리나 저장소에 상관없이 모든 값을 반환함

[GET] groups/{groupId}/ingredients?saveType=

response

[
	{
		"ingredientName":"salad",
		"ingredientSaveType" : "냉동",
		"intredientCategory" : "육류",
		"ingredientExpirationDate" : "2023-02-02",
		"ingredientCount" : "1개"
	},
	{
		"ingredientName":"salad",
		"ingredientSaveType" : "냉동",
		"intredientCategory" : "육류",
		"ingredientExpirationDate" : "2023-02-02",
		"ingredientCount" : "1개"
	},

]

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

  • enum에 선언되지 않은 saveType이 들어올 경우 에러처리
  • 전체 목록을 반환해야하는 경우 saveType 처리 방법

[집안일] n달별 당번 목록을 반환하는 기능

기능 설명

  • n달별 당번 목록을 반환하는 기능

[GET] groups/{groupId}/chores

response

{    
    "data" : [
        {
            "choreId" : 0,
            "choreUserId" : 0,
            "choreTitle" : "설거지",
            "choreCategory" : "설거지",
            "choreDate" : "yyyy-mm-dd"
        }
    ]
}

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 2H

진행 사항

  • Data Mapping하여 객체 전달하기
  • Query DSL을 사용하여 값 추출하기
  • Date format 처리하기

[식재료] 식재료를 직접 입력해서 추가하는 기능

기능 설명

  • 식재료를 직접 작성하여 등록하는 기능

[POST] groups/{groupId}/iningredients

request

{
	"ingredientName" : "salad source",
	"ingredientSaveType" : "ROOM_TEMP",
	"ingredientPurchaseDate" : "2022-02-02", 
	"ingredientExpirationDate" : "2023-02-02", 
	"ingredientCategory" : "SEASONING", 
	"ingredientCount " : "1개", 
	"ingredientMemo" : "메모메모"
}

response

200 - Ok
식재료 추가가 정상적으로 처리된 경우

409 - Conflict
모든 정보가 제대로 들어오지 않았을 경우

404 - Not Found
해당하는 그룹이 존재하지 않는 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : 4H

진행 사항

  • 그룹 존재 여부
  • 폼 형식 맞는지 여부
  • 식재료 추가
  • 유통기한, 구매 날짜 처리(String, date, localdatetime)
  • enum DB에 저장(숫자, 변수 이름, 멤버 변수)
  • 식재료 카운트 int -> String 변경
  • 경로에 s 붙이기

[심부름] 심부름을 수락하거나 수락한 후 취소하는 기능

기능 설명

  • 해당 심부름을 승인하거나 거절하는 기능
  • 승인일때는 거절로, 거절일때는 승인으로 변경한다

[Post] groups/{groupId}/quests/{quest_id}

request

{
    "acceptUserId" : "Accept User ID"
}

response

{
    "completeCheck" : "true/false"
}

200 - Ok
심부름 승인/거절이 정상적으로 처리된 경우

409 - Conflict
값이 모두 들어오지 못한 경우

404 - Not Found
acceptUserId 혹은 qeustId가 존재하지 않는 경우

Exception
acceptUserId가 이미 작성되어 있고, completeCheck가 true인 경우(이미 누군가 수락한 경우)

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

[심부름] 심부름 상세 조회 기능 구현

기능 설명

심부름의 상세 정보를 조회하는 기능

[GET] groups/{groupId}/quests/{questId}

response

{
		"questId" : 1
		"requestUserId" : "Request User ID"
		"questTitle" : "Quest Title",
		"questContent" : "Quest Content",
		"questCreatedDate" : "Quest Created Date",
		"completeCheck" : "Complete Check",
		"acceptUserId" : "Accept User ID"
}

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

[회원] 회원 가입하는 기능

기능 설명

  • 회원의 이름, 이메일, 비밀번호를 이용해 회원가입하는 기능

[Post]/users

request

{
	"userName" : "User Name",
	"userEmail" : "User Email",
	"userPassword" : "User Password"
}

response

200 - Ok
- 회원가입이 정상적으로 처리된 경우

409 - Conflict
- 이미 존재하는 이메일일 경우
- 이미 존재하는 닉네임일 경우
- 값이 모두 안 들어온 경우

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 2H 30M

진행 사항

  • Spring Security를 이용하여 BCrypt방식으로 Password 암호화 처리
  • Spring Validation을 이용하여 이메일형식, Null값/공백 등 형식 유효성 검증
  • FormValidateException과 AlreadyExistsException을 생성하여 예외처리
  • 진행하며 일부 Entity 보완

[심부름] 심부름을 전체 조회 하는 기능

기능 설명

  • 모든 심부름의 내용들을 조회하는 기능

[GET] groups/{groupId}/quests

request

심부름 전체 조회 요청

response

[
    {
        "questTitle" : "Quest Title",
        "questContent" : "Quest Content",
        "questCreatedDate" : "Quest Create Date",
        "questModifiedDate" : "Quest Modified Date",
        "completeCheck" : "Complete Check",
        "acceptUserId" : "Accept User ID",
        "RequestUserId" : "Request User ID"
    },
    {
        ...
    },
    ...
]

소요 시간

  • 예상 완료 시간 : 1H
  • 실제 소요 시간 : 30M

진행 사항

[
    {
        "requestUserId": 1,
        "questTitle": "치킨 사주라",
        "questContent": "제발",
        "questCreateDate": "2022-05-19T09:48:18.060383",
        "questModifiedDate": "2022-05-19T09:48:18.060383",
        "completeCheck": false,
        "acceptUserId": -1
    },
    {
        "requestUserId": 1,
        "questTitle": "치킨 사주라",
        "questContent": "제발",
        "questCreateDate": "2022-05-19T09:49:04.097976",
        "questModifiedDate": "2022-05-19T09:49:04.097976",
        "completeCheck": false,
        "acceptUserId": -1
    },
    {
        "requestUserId": 1,
        "questTitle": "치킨 사주라",
        "questContent": "제발",
        "questCreateDate": "2022-05-19T09:49:04.668693",
        "questModifiedDate": "2022-05-19T09:49:04.668693",
        "completeCheck": false,
        "acceptUserId": -1
    }
]

[식재료] 식재료의 세부 사항을 수정하는 기능

기능 설명

  • 등록된 식재료의 정보를 수정하는 기능
  • 만약 수량이 0이라면 삭제

[PUT] groups/{groupId}/iningredients/{iningredientId}

request

{
	"ingredientName" : "salad source",
	"ingredientSaveType" : "FREEZER", 
	"ingredientPurchaseDate" : "2022-02-02",
	"ingredientExpirationDate" : "2023-02-02",
	"ingredientCategory" : "MEAT",
	"ingredientCount" : 1, 
	"ingredientMemo" : "aaaaa"
}

response

200 - Ok
- 식재료 수정이 정상적으로 처리된 경우

409 - Conflict
- 모든 정보가 제대로 들어오지 않았을 경우

404 - Not Found

  • 해당하는 그룹이 존재하지 않는 경우
  • 해당하는 식재료의 아이디가 없는 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

  • 지정된 날짜 형식이 아닐 경우 BindingError가 아닌 Json 에러가 남 -> 확인 필요
  • 개수가 0개일 경우 무조건 삭제 -> 0g이든 0개이든 다 삭제해야함
  • 식재료가 그룹에 속해있는지 확인

[집안일] 집안일 후 구성원에게 집안일 인증 요청을 보낼 때 상태를 변경하는 기능

기능 설명

  • 집안일 완료 후 chore_check 컬럼을 REQUEST로 변경하기 위한 기능
  • chore_check는 집안일 인증 요청 / 구성원이 수락 / 구성원이 거절의 상태를 표시하는 컬럼이다.

[POST] groups/{groupId}/chores/{choreId}/certify

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 3H

진행 사항

  • @Query를 사용하여 DB 내용 수정하기

[DB] AWS 연결

  • AWS RDS로 MySQL 생성
  • RDS 인바운드 설정
  • DATABASE, TABLE 생성
  • 프로젝트에서 RDS 연결
  • DB 관련 정보는 환경변수로 처리하여 .yml 코드에 보이지 않도록 처리

[회원] 회원 정보 수정 기능 관련 리펙토링

  • 변경된 API에 맞춰 회원 정보 수정기능을 리펙토링하고 수정합니다.
  • 회원의 기본정보 수정(회원 이름, 닉네임, 이미지)과 회원의 비밀번호 수정을 나눠 진행합니다.

진행내용

  • 회원의 기본정보 수정하기 구현
  • 회원의 비밀번호 수정하기 구현
  • 회원의 비밀번호가 맞는지 확인
  • 새 비밀번호로 수정시, 새 비밀번호와 비밀번호 확인값이 같은지 확인

[집안일] 인증 요청에 대한 응답을 처리하는 기능

기능 설명

시나리오

  1. 당번이 집안일을 완료하면 인증 요청을 보낸다.
  2. 당번을 제외한 구성원은 인증에 대해 수락 / 거절 처리를 해주어야 한다.
  3. 인증 요청에 대해 한 사람만의 응답을 받는다.
  • 이 기능을 통해 당번의 요청에 대한 수락 수를 모아서 랭킹을 매긴다.

HTTP

[POST] groups/{groupId}/chores/{choreId}/reaction

request

{
	"reaction" : ""
}

response

200 - ok

  • chore_checkSUCCESS 또는 FAIL로 변경되었을 때

404 - not found

  • group Id가 존재하지 않을 경우
  • chore id가 존재하지 않을 경우

409 - conflict

  • 값이 다 안 들어온 경우

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 2H

진행 사항

  • @Query를 이용하여 DB 내용 수정
  • 옳지 않은 응답이 확인 될때 예외처리(ex. BEFORE이 응답으로 들어올 경우 예외처리)

[집안일] 당번을 직접 추가하는 기능

기능 설명

  • 날짜를 선택하여 집안일 당번의 일정을 추가하는 기능

[POST] groups/{groupId}/chores

request

{
  "choreTitle" : "설거지",
  "choreCategory" : "설거지",
  "choreDate" : "yyyy-mm-dd",
  "choreUserId" : 0
}

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 5H

진행 사항

  • @Valid@RequestBody검증하기
  • Enum에 포함되어있지 않은 값 처리
  • Date format 형식 처리하기

[식재료] 식재료 관련 수정

  • 일괄 삭제 시간복잡도 개선 -> 딱히 수정할게 없음
  • 일괄 수정 n+1 개선
  • 일괄 수정 가독성 있게 로직 수정
  • 코드 정리
  • 에러 처리 명확하게 수정
  • "백개" 와 같이 한글로 된 숫자가 들어올 경우 처리
  • putmapping () 괄호 삭제

[그룹] 자신이 속한 그룹의 모든 멤버들을 조회하는 기능

기능 설명

  • 자신이 속한 그룹의 모든 멤버들을 조회하는 기능

[GET] /group/{groupId} /find-users

request

  • 해당 그룹 아이디를 이용하여 그룹 멤버 조회 요청

response

[
    {
        "userId": 2,
        "userName": "min j",
        "userNickname": "kiki",
        "userImageName": ""
    },
    {
        "userId": 3,
        "userName": "min j",
        "userNickname": "kiki",
        "userImageName": ""
    }
]

소요 시간

  • 예상 완료 시간 : 2H
  • 실제 소요 시간 : 4H

진행 사항

  1. 그룹 존재 여부 확인
  2. 유저 존재 여부 확인
  3. API를 요청한 사용자의 정보를 제외한 그룹에 속한 유저의 정보 반환

[집안일] 각 하루별 당번 목록을 반환하는 기능

기능 설명

  • 각 하루별 당번 목록을 반환하는 기능

[GET] groups/{groupId}/chores/one-day

request

{ 
    "date" : "yyyy-mm-dd"
}

response

{    
    "data" : [
        {
            "choreId" : 0,
            "choreUserId" : 0,
            "choreTitle" : "설거지",
            "choreCategory" : "설거지",
            "choreDate" : "yyyy-mm-dd"
        }
    ]
}

소요 시간

  • 예상 완료 시간 : 3H
  • 실제 소요 시간 : 4H 30M

진행 사항

  • Data Mapping하여 객체 전달하기
  • Query DSL을 사용하여 값 추출하기
  • Date format 처리하기

[왕] 이달의 심부름 왕을 계산하는 기능

기능 설명

[GET] /groups/{groupId}/kings/quests?date=

response

{
	"userId" : 1,
	"questCount" : 3
}

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

  • 날짜 비교할 때 퀘스트가 최종 수정된 날짜와 비교
  • 퀘스트와 집안일을 나눠서 처리하던 것을 일괄로 반환하도록 처리

[배포] AWS ec2 배포

배포 기준 : 백그라운드 상에서도 서버가 정상적으로 구동되기 까지

[회원] 회원의 정보를 상세하게 조회하는 기능

기능 설명

  • 한 회원의 모든 정보를 조회하여 반환하는 기능

[GET] /users/{userId}

request

  • 상세 조회하고자 하는 회원의 아이디를 parameter의 형태로 전송

response

{
	"userName" : "user name",
	"userEmail" : "user email",
	"userImageName" : "image name",
	{
		"king" : [
			{
				"title" : "",
				"count" : "",
				"date" : ""
			}
		]
	}
}

소요 시간

  • 예상 완료 시간 : 3H
  • 실제 소요 시간 : 6H

진행 사항

  • king으로 값 매핑하여 반환(단, 값이 없을 경우 null혹은 빈 배열 반환)
  • quest king과 chore king을 나눠서 진행
  • 비밀번호는 조회하지 않음
  • date에 해당하는 달의 왕을 반환

[심부름] 심부름을 수정하는 기능

기능 설명

  • 심부름의 내용을 수정하는 기능
  • 해당 심부름을 요청한(추가한) 회원만 심부름의 내용을 변경할 수 있다.
  • 내용 변경시, questModifiedDate에 현재 변경 일시가 저장된다.

[Update] groups/{groupId}/quests/{questId}/{requestUserId}

request

  • 해당 형식에서 수정되는 컬럼만 변경되어 요청된다.
{
    "questTitle" : "Quest Title",
    "questContent" : "Quest Content"
}

response

200 - Ok
심부름 수정이 정상적으로 처리된 경우

409 - Conflict
값이 모두 들어오지 못한 경우

404 - Not Found
request_user_id나 quest_id가 존재하지 않는 경우

소요 시간

  • 예상 완료 시간 : H
  • 실제 소요 시간 : H

진행 사항

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.