Skip to content

[feat] 내 템플릿 수정 API #52

Closed

Description

@oTAETAEo

관련 명세

  • docs/s1-api-spec.md 11번 PUT /api/v1/templates/{templateId} (NEW-07, MYT-07, MYT-09, 정책표 4)
  • TEMPLATE200_3 수정 내용이 저장되었습니다.
  • TEMPLATE400_1~7 형식 오류, TEMPLATE404_1·TEMPLATE404_2, TEMPLATE409_1 이미 사용 중인 단축어예요.

작업 내용

#49의 getActiveTemplate을 재사용해 세 필드 전체 수정을 만든다.

  • TemplateCommandService: 수정 메서드, 입력 TemplateUpdateCommand, 결과 TemplateUpdateResult
  • TemplateController: PUT /{templateId}, 요청 TemplateUpdateRequest, 응답 TemplateUpdateResponse, 성공 코드 TEMPLATE200_3
  • TemplateRepository: 자기 자신을 뺀 활성 단축어 중복 조회. 13번 excludeTemplateId도 같은 메서드를 쓴다
  • 저장은 기존 save()로 한다. 저장 시 유니크 위반은 TEMPLATE409_1로 바꾼다
  • 현재 시각은 Clock 빈에서 얻는다

동작 규칙

경우 결과
정리 후 세 값이 기존과 같음 아무것도 바뀌지 않음. edited_at·updated_at 유지
단축어 대소문자만 변경 수정으로 처리
자기 자신의 단축어 그대로 중복 아님
내 다른 활성 템플릿과 비교 키가 같음 TEMPLATE409_1
휴지통 템플릿이 쓰던 단축어 사용 가능
없는 ID, 다른 회원 템플릿 (휴지통 포함) TEMPLATE404_1
내 템플릿인데 휴지통에 있음 TEMPLATE404_2

수정은 개수가 바뀌지 않으므로 lockUser를 부르지 않는다. 동시 수정은 나중 저장이 덮어쓴다.

완료 조건

  • 성공 응답과 DB 값, editedAt 갱신, lastUsedAt 유지, 캐시 금지 헤더
  • 같은 값 저장 시 editedAt·updated_at 유지, 대소문자만 바꾸면 수정
  • 자기 단축어 성공, 내 다른 활성 템플릿 409_1(자모 분리형·대소문자 포함), 휴지통 단축어 성공
  • 실제 유니크 위반이 TEMPLATE409_1로 바뀌고 수정이 남지 않음
  • 404 구분, 검증 순서(이름 → 단축어 → 내용), 토큰 없음 COMMON401_1
  • 수정한 본문도 암호화해 저장
  • ./gradlew build 통과

참고

Metadata

Metadata

Assignees

Labels

feature기능 개발template내 템플릿·휴지통

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions