Skip to content

Commit

Permalink
merge develop to main (#37)
Browse files Browse the repository at this point in the history
* feat: 공지사항 생성, 공지사항 읽기 기능 추가 (#1)

* ✨ 패키지 및 엔티티 생성

* ✨ BaseTimeEntity 생성, PostEntity 기본 내용 작성

* ✨ PostController 생성 및 기본 내용 작성

* ✨ postService 생성

* ✨ Exceptions.kt 생성

* ✨ postDto 생성

* ✨ postRepository 생성 및 기본 내용 작성

* 💚 application.yaml 로컬 환경에서 작동하도록 설정

* feat: createPost 기능 생성

* refactor: 리뷰 주신 거 수정

* refactor: post -> notice 수정 등

* chore: .idea 디렉토리 삭제

* chore: PR 템플릿 생성 (#2)

* feat: 로컬 db용 docker-compose 파일 추가 및 application.yaml 수정 (#4)

* feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3)

* fix: ExceptionHandler 추가

* feat: updateNotice 추가, valid 추가

* feat: deleteNotice 추가

* feat: enrollTag 기능 추가, noticeTag 연관 엔티티 추가

* feat: 공지사항 작성할 때 태그 생성 및 수정

* fix: 로컬 db 없앰

* fix: pr 리뷰 수정

* fix: pr 리뷰 수정

* fix: noticeTag assign

* feat: 구성원(교수) 생성 및 조회 API 구현  (#8)

* feat: 교수 엔티티 및 DTO 설계

* feat: 교수 생성 및 조회

* Docs: Swagger 추가 (#7)

* Docs: Add swagger dependency

* Docs: Add basic config for swagger

* Docs: Add basic configuration for swagger.

* feat: 페이지네이션+검색 기능 추가 (#5)

* feat: isPublic, isSlide, isPinned 추가

* feat: queryDsl 적용 위해 gradle 추가 fix: javax -> jakarta 변경

* feat: queryDsl 도입

* feat: 키워드+태그 검색 추가

* feat: search query에 isDeleted, isPublic 추가 및 isPinned 우선순위 설정

* fix: requestBody -> requestParam 수정

* feat: 페이지네이션 추가

* fix: 키워드 booleanBuilder 추가, application.yaml 수정

* fix: searchNotice readOnly 추가

* fix: SearchRequest 삭제

* fix: NoticeDto tags 추가

* fix: pr 리뷰 수정 / feat: 검색 기능 보강 및 수정

* fix:코드 수정

* fix: SearchResponse isPinned 추가

* fix: SearchResponse에 total 추가

* fix: 페이지 개수 수정

* fix: searchNotice queryDsl 오류 수정

* fix: local 설정 변경

* CICD: 배포 자동화 (#6)

* CICD: Change expose port and added image tag

* CICD: Change ddl-auto to create in prod profile for test

* CICD: Added Deploy github action

* CICD: Merge jobs to one job

* Fix: Change checkout order to first step

* CICD: Add context for docker build action

* Fix: Change spring profile arg position

* CICD: Change openjdk version to 17

* CICD: Change docker compose build image tag to latest

* CICD: Change to use ghcr repository.

* Fix: change list to string in docker push tags.

* Fix: Change registry to ghcr.io

* Fix: change env to pass to github action instead of ssh export command

* Fix: unwrap bracket.

* Fix: wrap Profile with ""

* CICD: Add .env file

* CICD: Change prod ddl-auto to create (for developing), and add TODO comment.

* CICD: Remove cicd/deploy branch for condition.

* feat: 구성원(교수) 수정 및 삭제 API (#9)

* feat: 교수 조회시 최종학력이 앞으로 오게끔 정렬

* feat: 교수 수정 및 삭제 API

* feat: 학력과 경력 엔티티 필드 변경, 수정 API 구현

* feat: 구성원(행정직원) CRUD API (#10)

* feat: 행정직원 엔티티 및 DTO 설계

* feat: 행정직원 CRUD

* feat: 교수 조회시 이름순 정렬

* fix: 교수 연구 분야 Set -> List 로 변경

* feat: 행정직원 주요업무 업데이트 구현

* feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12)

* feat: news 패키지 생성

* feat: readNews 생성, news 패키지 추가로 인한 명칭 변경

* feat: createNews, enrollTag(새소식) 추가, news 패키지로 인한 명칭 추가 변경

* feat: updateNews, deleteNews 추가

* fix: searchNotice 관련 명칭 변경

* feat: searchNews 추가

* fix: develop 브랜치 반영, 프론트 요구사항 반영

* feat: readNotice, readNews에 이전글 다음글 추가

* 태그 업데이트 코드 리팩터링중

* refactor: 코드 수정, 이전제목 추가

* fix: 게시글 하나일때 read 가능

* fix: prevNext null 없애기

* fix: 이전글 다음글 null 수정

* fix: main에서 develop으로 pr (#16)

* feat: merge develop to main (#13)

* feat: 공지사항 생성, 공지사항 읽기 기능 추가 (#1)

* ✨ 패키지 및 엔티티 생성

* ✨ BaseTimeEntity 생성, PostEntity 기본 내용 작성

* ✨ PostController 생성 및 기본 내용 작성

* ✨ postService 생성

* ✨ Exceptions.kt 생성

* ✨ postDto 생성

* ✨ postRepository 생성 및 기본 내용 작성

* 💚 application.yaml 로컬 환경에서 작동하도록 설정

* feat: createPost 기능 생성

* refactor: 리뷰 주신 거 수정

* refactor: post -> notice 수정 등

* chore: .idea 디렉토리 삭제

* chore: PR 템플릿 생성 (#2)

* feat: 로컬 db용 docker-compose 파일 추가 및 application.yaml 수정 (#4)

* feat: 공지사항 수정, 삭제, 태그 기능 추가 (#3)

* fix: ExceptionHandler 추가

* feat: updateNotice 추가, valid 추가

* feat: deleteNotice 추가

* feat: enrollTag 기능 추가, noticeTag 연관 엔티티 추가

* feat: 공지사항 작성할 때 태그 생성 및 수정

* fix: 로컬 db 없앰

* fix: pr 리뷰 수정

* fix: pr 리뷰 수정

* fix: noticeTag assign

* feat: 구성원(교수) 생성 및 조회 API 구현  (#8)

* feat: 교수 엔티티 및 DTO 설계

* feat: 교수 생성 및 조회

* Docs: Swagger 추가 (#7)

* Docs: Add swagger dependency

* Docs: Add basic config for swagger

* Docs: Add basic configuration for swagger.

* feat: 페이지네이션+검색 기능 추가 (#5)

* feat: isPublic, isSlide, isPinned 추가

* feat: queryDsl 적용 위해 gradle 추가 fix: javax -> jakarta 변경

* feat: queryDsl 도입

* feat: 키워드+태그 검색 추가

* feat: search query에 isDeleted, isPublic 추가 및 isPinned 우선순위 설정

* fix: requestBody -> requestParam 수정

* feat: 페이지네이션 추가

* fix: 키워드 booleanBuilder 추가, application.yaml 수정

* fix: searchNotice readOnly 추가

* fix: SearchRequest 삭제

* fix: NoticeDto tags 추가

* fix: pr 리뷰 수정 / feat: 검색 기능 보강 및 수정

* fix:코드 수정

* fix: SearchResponse isPinned 추가

* fix: SearchResponse에 total 추가

* fix: 페이지 개수 수정

* fix: searchNotice queryDsl 오류 수정

* fix: local 설정 변경

* CICD: 배포 자동화 (#6)

* CICD: Change expose port and added image tag

* CICD: Change ddl-auto to create in prod profile for test

* CICD: Added Deploy github action

* CICD: Merge jobs to one job

* Fix: Change checkout order to first step

* CICD: Add context for docker build action

* Fix: Change spring profile arg position

* CICD: Change openjdk version to 17

* CICD: Change docker compose build image tag to latest

* CICD: Change to use ghcr repository.

* Fix: change list to string in docker push tags.

* Fix: Change registry to ghcr.io

* Fix: change env to pass to github action instead of ssh export command

* Fix: unwrap bracket.

* Fix: wrap Profile with ""

* CICD: Add .env file

* CICD: Change prod ddl-auto to create (for developing), and add TODO comment.

* CICD: Remove cicd/deploy branch for condition.

* feat: 구성원(교수) 수정 및 삭제 API (#9)

* feat: 교수 조회시 최종학력이 앞으로 오게끔 정렬

* feat: 교수 수정 및 삭제 API

* feat: 학력과 경력 엔티티 필드 변경, 수정 API 구현

* feat: 구성원(행정직원) CRUD API (#10)

* feat: 행정직원 엔티티 및 DTO 설계

* feat: 행정직원 CRUD

* feat: 교수 조회시 이름순 정렬

* fix: 교수 연구 분야 Set -> List 로 변경

* feat: 행정직원 주요업무 업데이트 구현

* feat: news 패키지 추가, 디벨롭 및 프론트에 맞게 엔티티 변경 (#12)

* feat: news 패키지 생성

* feat: readNews 생성, news 패키지 추가로 인한 명칭 변경

* feat: createNews, enrollTag(새소식) 추가, news 패키지로 인한 명칭 추가 변경

* feat: updateNews, deleteNews 추가

* fix: searchNotice 관련 명칭 변경

* feat: searchNews 추가

* fix: develop 브랜치 반영, 프론트 요구사항 반영

* feat: readNotice, readNews에 이전글 다음글 추가

* 태그 업데이트 코드 리팩터링중

* refactor: 코드 수정, 이전제목 추가

* fix: 게시글 하나일때 read 가능

* fix: prevNext null 없애기

* fix: 이전글 다음글 null 수정

---------

Co-authored-by: Jo Seonggyu <blueland1998@snu.ac.kr>
Co-authored-by: 우혁준 (HyukJoon Woo) <whjoon0225@naver.com>

* hotfix: 사용하지않는 Dto 및 엔티티 삭제 (#14)

---------

Co-authored-by: Junhyeong Kim <indiv0227@snu.ac.kr>
Co-authored-by: 우혁준 (HyukJoon Woo) <whjoon0225@naver.com>

* feat: seminar 패키지 추가 (#17)

* feat: createSeminar, readSeminar, updateSeminar 추가

* feat: deleteSeminar, searchSeminar 추가

* fix: distinct 삭제

* hotfix: 불필요한 dto 삭제 (#20)

* hotfix: 불필요한 dto 삭제

* build.gradle 수정

* fix: 이미지 uri 필드 추가 및 프론트 요구사항 반영 (#21)

* feat: 이미지 uri 필드 추가 및 isActive 대신 status 추가

* fix: 행정직원 전체 조회 응답에서 task 삭제

* fix: 교수진 페이지 응답 수정

* feat: introduction 패키지, undergraduate 패키지 추가 (#22)

* feat: createUndergraduate, readUndergraduate 추가

* feat: readAllCourses, createCourse, readCourse 추가

* introduction 패키지 추가

* fix: dto에서 postType 삭제

* fix: postType pathVariable->requestBody 수정, 오타 수정

* fix: 프론트와 협의하여 이름 등 변경

* feat: academics 패키지 대학원도 가능하도록 추가

* feat: 장학제도 세부 장학금 create, read 추가

* fix: 수정

* fix:수정

* feat: admissions, research 패키지 추가 (#23)

* feat: admissions-학부 에서 create, read 추가

* feat: admissions-대학원도 작성 가능하도록 추가

* feat: createResearch 추가

* feat: createLab 추가

* fix: 다른 패키지에 맞게 수정

* research-groups, research-centers에서 read, update 추가

* fix: admissions, research에서 프론트와 협의하여 이름 등 수정

* fix: 오타 수정

* fix: enum 추가, pr 리뷰 반영

* feat: oidc 로그인 (#27)

* feat: oidc 로그인

* feat: TaskEntity name 추가

* feat: 배포 설정

* feat: 유저 정보에 학번 추가, 로그인 시 sub claim 확인

* feat: 배포 테스트 위해 redirect-uri 변경

* fix: groups claim 소문자로 수정

* feat: idsnucse 다운 되었을때 에러 처리

* feat: idsnucse 다운 되었을때 에러 처리

* feat: cors 설정 (#30)

* fix: cors 추가 설정 (#32)

* feat: cors 설정

* feat: cors 설정

* fix: CORS (#34)

* feat: cors 설정

* feat: cors 설정

* feat: cors 설정

* fix: about, academics, admissions 패키지 수정 (#25)

* fix: admissions, about 컨트롤러 변경

* fix: academics 컨트롤러 수정

* 커밋중

* fix: pr 리뷰 반영

* feat: readMain 추가

* pr 리뷰 반영

---------

Co-authored-by: Junhyeong Kim <indiv0227@snu.ac.kr>
Co-authored-by: 우혁준 (HyukJoon Woo) <whjoon0225@naver.com>
  • Loading branch information
3 people authored Aug 24, 2023
1 parent 748e096 commit 8918627
Show file tree
Hide file tree
Showing 30 changed files with 333 additions and 144 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,25 @@ import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController

@RequestMapping("/about")
@RestController
class AboutController(
private val aboutService: AboutService
) {
// postType -> 학부 소개: overview, 연혁: history, 졸업생 진로: future-careers, 연락처: contact
// 위에 있는 항목은 name = null

// postType: student-clubs / name -> 가디언, 바쿠스, 사커301, 슈타인, 스눕스, 와플스튜디오, 유피넬
// postType: facilities / name -> 학부-행정실, S-Lab, 소프트웨어-실습실, 하드웨어-실습실, 해동학술정보실, 학생-공간-및-동아리-방, 세미나실, 서버실
// postType: directions / name -> by-public-transit, by-car, from-far-away

// Todo: 전체 image, file, 학부장 인사말(greetings) signature
@PostMapping
@PostMapping("/{postType}")
fun createAbout(
@PathVariable postType: String,
@Valid @RequestBody request: AboutDto
) : ResponseEntity<AboutDto> {
return ResponseEntity.ok(aboutService.createAbout(request))
return ResponseEntity.ok(aboutService.createAbout(postType, request))
}

// read 목록이 하나
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,36 +2,28 @@ package com.wafflestudio.csereal.core.about.database

import com.wafflestudio.csereal.common.config.BaseTimeEntity
import com.wafflestudio.csereal.core.about.dto.AboutDto
import jakarta.persistence.CascadeType
import jakarta.persistence.Entity
import jakarta.persistence.OneToMany
import jakarta.persistence.*

@Entity(name = "about")
class AboutEntity(
var postType: String,

var name: String,

@Enumerated(EnumType.STRING)
var postType: AboutPostType,
var name: String?,
var engName: String?,

var description: String,

var year: Int?,

var isPublic: Boolean,

@OneToMany(mappedBy = "about", cascade = [CascadeType.ALL], orphanRemoval = true)
val locations: MutableList<LocationEntity> = mutableListOf()
) : BaseTimeEntity() {
companion object {
fun of(aboutDto: AboutDto): AboutEntity {
fun of(postType: AboutPostType, aboutDto: AboutDto): AboutEntity {
return AboutEntity(
postType = aboutDto.postType,
postType = postType,
name = aboutDto.name,
engName = aboutDto.engName,
description = aboutDto.description,
year = aboutDto.year,
isPublic = aboutDto.isPublic,
)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.wafflestudio.csereal.core.about.database

enum class AboutPostType {
OVERVIEW, HISTORY, FUTURE_CAREERS, CONTACT, STUDENT_CLUBS, FACILITIES, DIRECTIONS,
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ package com.wafflestudio.csereal.core.about.database
import org.springframework.data.jpa.repository.JpaRepository

interface AboutRepository : JpaRepository<AboutEntity, Long> {
fun findAllByPostTypeOrderByName(postType: String): List<AboutEntity>
fun findByPostType(postType: String): AboutEntity
fun findAllByPostTypeOrderByName(postType: AboutPostType): List<AboutEntity>
fun findByPostType(postType: AboutPostType): AboutEntity
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,24 @@ import java.time.LocalDateTime

data class AboutDto(
val id: Long,
val postType: String,
val name: String,
val name: String?,
val engName: String?,
val description: String,
val year: Int?,
val createdAt: LocalDateTime?,
val modifiedAt: LocalDateTime?,
val isPublic: Boolean,
val locations: List<String>?
) {
companion object {
fun of(entity: AboutEntity) : AboutDto = entity.run {
AboutDto(
id = this.id,
postType = this.postType,
name = this.name,
engName = this.engName,
description = this.description,
year = this.year,
createdAt = this.createdAt,
modifiedAt = this.modifiedAt,
isPublic = this.isPublic,
locations = this.locations.map { it.name }
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package com.wafflestudio.csereal.core.about.service

import com.wafflestudio.csereal.common.CserealException
import com.wafflestudio.csereal.core.about.database.AboutEntity
import com.wafflestudio.csereal.core.about.database.AboutPostType
import com.wafflestudio.csereal.core.about.database.AboutRepository
import com.wafflestudio.csereal.core.about.database.LocationEntity
import com.wafflestudio.csereal.core.about.dto.AboutDto
import org.springframework.stereotype.Service
import org.springframework.transaction.annotation.Transactional

interface AboutService {
fun createAbout(request: AboutDto): AboutDto
fun createAbout(postType: String, request: AboutDto): AboutDto
fun readAbout(postType: String): AboutDto
fun readAllClubs() : List<AboutDto>
fun readAllFacilities() : List<AboutDto>
Expand All @@ -20,8 +22,9 @@ class AboutServiceImpl(
private val aboutRepository: AboutRepository
) : AboutService {
@Transactional
override fun createAbout(request: AboutDto): AboutDto {
val newAbout = AboutEntity.of(request)
override fun createAbout(postType: String, request: AboutDto): AboutDto {
val enumPostType = makeStringToEnum(postType)
val newAbout = AboutEntity.of(enumPostType, request)

if(request.locations != null) {
for (location in request.locations) {
Expand All @@ -36,14 +39,15 @@ class AboutServiceImpl(

@Transactional(readOnly = true)
override fun readAbout(postType: String): AboutDto {
val about = aboutRepository.findByPostType(postType)
val enumPostType = makeStringToEnum(postType)
val about = aboutRepository.findByPostType(enumPostType)

return AboutDto.of(about)
}

@Transactional(readOnly = true)
override fun readAllClubs(): List<AboutDto> {
val clubs = aboutRepository.findAllByPostTypeOrderByName("student-clubs").map {
val clubs = aboutRepository.findAllByPostTypeOrderByName(AboutPostType.STUDENT_CLUBS).map {
AboutDto.of(it)
}

Expand All @@ -52,7 +56,7 @@ class AboutServiceImpl(

@Transactional(readOnly = true)
override fun readAllFacilities(): List<AboutDto> {
val facilities = aboutRepository.findAllByPostTypeOrderByName("facilities").map {
val facilities = aboutRepository.findAllByPostTypeOrderByName(AboutPostType.FACILITIES).map {
AboutDto.of(it)
}

Expand All @@ -61,10 +65,20 @@ class AboutServiceImpl(

@Transactional(readOnly = true)
override fun readAllDirections(): List<AboutDto> {
val directions = aboutRepository.findAllByPostTypeOrderByName("directions").map {
val directions = aboutRepository.findAllByPostTypeOrderByName(AboutPostType.DIRECTIONS).map {
AboutDto.of(it)
}

return directions
}

private fun makeStringToEnum(postType: String) : AboutPostType {
try {
val upperPostType = postType.replace("-","_").uppercase()
return AboutPostType.valueOf(upperPostType)

} catch (e: IllegalArgumentException) {
throw CserealException.Csereal400("해당하는 enum을 찾을 수 없습니다")
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.wafflestudio.csereal.core.academics.api

import com.wafflestudio.csereal.core.academics.database.StudentType
import com.wafflestudio.csereal.core.academics.dto.CourseDto
import com.wafflestudio.csereal.core.academics.dto.AcademicsDto
import com.wafflestudio.csereal.core.academics.service.AcademicsService
Expand All @@ -11,6 +10,7 @@ import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam
import org.springframework.web.bind.annotation.RestController

@RequestMapping("/academics")
Expand All @@ -19,61 +19,59 @@ class AcademicsController(
private val academicsService: AcademicsService
) {

// postType -> 학부 안내: guide, 필수 교양 과목: general-studies-requirements,
// 전공 이수 표준 형태: curriculum, 졸업 규청: degree-requirements,
// 교과목 변경 내역: course-changes, 장학제도: scholarship
//Todo: 이미지, 파일 추가 필요
@PostMapping("/{studentType}")
@PostMapping("/{studentType}/{postType}")
fun createAcademics(
@PathVariable studentType: StudentType,
@PathVariable studentType: String,
@PathVariable postType: String,
@Valid @RequestBody request: AcademicsDto
) : ResponseEntity<AcademicsDto> {
return ResponseEntity.ok(academicsService.createAcademics(studentType, request))
return ResponseEntity.ok(academicsService.createAcademics(studentType, postType, request))
}

@GetMapping("/{studentType}/{postType}")
fun readAcademics(
@PathVariable studentType: StudentType,
@PathVariable studentType: String,
@PathVariable postType: String,
): ResponseEntity<AcademicsDto> {
return ResponseEntity.ok(academicsService.readAcademics(studentType, postType))
}

//교과목 정보: courses
//교과목 정보
@PostMapping("/{studentType}/course")
fun createCourse(
@PathVariable studentType: StudentType,
@PathVariable studentType: String,
@Valid @RequestBody request: CourseDto
) : ResponseEntity<CourseDto> {
return ResponseEntity.ok(academicsService.createCourse(studentType, request))
}

@GetMapping("/{studentType}/courses")
fun readAllCourses(
@PathVariable studentType: StudentType,
@PathVariable studentType: String,
) : ResponseEntity<List<CourseDto>> {
return ResponseEntity.ok(academicsService.readAllCourses(studentType))
}

@GetMapping("/course/{name}")
@GetMapping("/course")
fun readCourse(
@PathVariable name: String
@RequestParam name: String
): ResponseEntity<CourseDto> {
return ResponseEntity.ok(academicsService.readCourse(name))
}

// 장학금
@PostMapping("/{studentType}/scholarship")
fun createScholarship(
@PathVariable studentType: StudentType,
@PathVariable studentType: String,
@Valid @RequestBody request: AcademicsDto
) : ResponseEntity<AcademicsDto> {
return ResponseEntity.ok(academicsService.createAcademics(studentType, request))
return ResponseEntity.ok(academicsService.createAcademics(studentType, "scholarship", request))
}

@GetMapping("/scholarship/{name}")
@GetMapping("/scholarship")
fun readScholarship(
@PathVariable name: String
@RequestParam name: String
) : ResponseEntity<AcademicsDto> {
return ResponseEntity.ok(academicsService.readScholarship(name))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,22 @@ import jakarta.persistence.Enumerated
@Entity(name = "academics")
class AcademicsEntity(
@Enumerated(EnumType.STRING)
var studentType: StudentType,
var studentType: AcademicsStudentType,

var postType: String,
@Enumerated(EnumType.STRING)
var postType: AcademicsPostType,

var name: String,

var description: String,

var year: Int?,

var isPublic: Boolean,

): BaseTimeEntity() {
companion object {
fun of(studentType: StudentType, academicsDto: AcademicsDto): AcademicsEntity {
fun of(studentType: AcademicsStudentType, postType: AcademicsPostType, academicsDto: AcademicsDto): AcademicsEntity {
return AcademicsEntity(
studentType = studentType,
postType = academicsDto.postType,
postType = postType,
name = academicsDto.name,
description = academicsDto.description,
year = academicsDto.year,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.wafflestudio.csereal.core.academics.database

enum class AcademicsPostType {
GUIDE, GENERAL_STUDIES_REQUIREMENTS, CURRICULUM, DEGREE_REQUIREMENTS, COURSE_CHANGES, SCHOLARSHIP
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ package com.wafflestudio.csereal.core.academics.database
import org.springframework.data.jpa.repository.JpaRepository

interface AcademicsRepository : JpaRepository<AcademicsEntity, Long> {
fun findByStudentTypeAndPostType(studentType: StudentType, postType: String) : AcademicsEntity
fun findByStudentTypeAndPostType(studentType: AcademicsStudentType, postType: AcademicsPostType) : AcademicsEntity
fun findByName(name: String): AcademicsEntity
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.wafflestudio.csereal.core.academics.database

enum class AcademicsStudentType {
UNDERGRADUATE, GRADUATE
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import jakarta.persistence.Entity
class CourseEntity(
var isDeleted: Boolean = false,

var studentType: StudentType,
var studentType: AcademicsStudentType,

var classification: String,

Expand All @@ -25,7 +25,7 @@ class CourseEntity(
var description: String?
): BaseTimeEntity() {
companion object {
fun of(studentType: StudentType, courseDto: CourseDto): CourseEntity {
fun of(studentType: AcademicsStudentType, courseDto: CourseDto): CourseEntity {
return CourseEntity(
studentType = studentType,
classification = courseDto.classification,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ package com.wafflestudio.csereal.core.academics.database
import org.springframework.data.jpa.repository.JpaRepository

interface CourseRepository : JpaRepository<CourseEntity, Long> {
fun findAllByStudentTypeOrderByYearAsc(studentType: StudentType) : List<CourseEntity>
fun findAllByStudentTypeOrderByYearAsc(studentType: AcademicsStudentType) : List<CourseEntity>
fun findByName(name: String) : CourseEntity
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import java.time.LocalDateTime

data class AcademicsDto(
val id: Long,
val postType: String,
val name: String,
val description: String,
val year: Int?,
Expand All @@ -17,7 +16,6 @@ data class AcademicsDto(
fun of(entity: AcademicsEntity) : AcademicsDto = entity.run {
AcademicsDto(
id = this.id,
postType = this.postType,
name = this.name,
description = this.description,
year = this.year,
Expand Down
Loading

0 comments on commit 8918627

Please sign in to comment.