Skip to content

Commit

Permalink
Merge pull request #16 from Gongjakso/feat/apply
Browse files Browse the repository at this point in the history
Feat/apply
  • Loading branch information
dl-00-e8 authored Jan 22, 2024
2 parents cef2c7a + c8cd115 commit dacfe3b
Show file tree
Hide file tree
Showing 7 changed files with 136 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.gongjakso.server.domain.apply.controller;

import com.gongjakso.server.domain.apply.dto.AddApplyReq;
import com.gongjakso.server.domain.apply.entity.Apply;
import com.gongjakso.server.domain.apply.service.ApplyService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
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.RestController;

@RequiredArgsConstructor
@RestController
@RequestMapping("/api/v1/apply")
@Tag(name = "Apply", description = "팀 빌딩 관련 API")
public class ApplyController {
private final ApplyService applyService;
@PostMapping("/1")
public ResponseEntity<Apply> addApply(@RequestBody AddApplyReq req){
Apply savedApply = applyService.save(req);
return ResponseEntity.status(HttpStatus.CREATED).body(savedApply);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package com.gongjakso.server.domain.apply.dto;

import com.gongjakso.server.domain.apply.entity.Apply;
import com.gongjakso.server.domain.apply.enumerate.PostType;
import com.gongjakso.server.domain.member.entity.Member;

public record AddApplyReq(
Member memberId,
String application,
String recruit_part,
PostType type,
Boolean is_pass,
Boolean is_open
) {
public Apply toEntity(){
return Apply.builder()
.member(memberId)
.application(application)
.recruit_part(recruit_part)
.type(type)
.is_pass(false)
.is_open(false)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.gongjakso.server.domain.apply.dto;

public record ApplyRes() {
}
51 changes: 51 additions & 0 deletions src/main/java/com/gongjakso/server/domain/apply/entity/Apply.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package com.gongjakso.server.domain.apply.entity;

import com.gongjakso.server.domain.apply.enumerate.PostType;
import com.gongjakso.server.domain.member.entity.Member;
import com.gongjakso.server.global.common.BaseTimeEntity;
import jakarta.persistence.*;
import lombok.AccessLevel;
import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@Entity
@Table(name = "apply")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Apply extends BaseTimeEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "list_id",nullable = false,columnDefinition = "bigint")
private Long listID;

@ManyToOne(targetEntity = Member.class, fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;

@Column(name = "application",nullable = false,columnDefinition = "varchar(500)")
private String application;

@Column(name = "recruit_part",nullable = false,columnDefinition = "varchar(50)")
private String recruit_part;

@Enumerated(EnumType.STRING)
private PostType type;

@Column(name = "is_pass", columnDefinition = "boolean" )
private Boolean is_pass;

@Column(name = "is_open", columnDefinition = "boolean" )
private Boolean is_open;

@Builder
public Apply(Long listID, Member member, String application,String recruit_part,PostType type, Boolean is_pass,Boolean is_open){
this.listID=listID;
this.member=member;
this.application=application;
this.recruit_part=recruit_part;
this.type=type;
this.is_pass=is_pass;
this.is_open=is_open;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.gongjakso.server.domain.apply.enumerate;

public enum PostType {
PROJECT,CONTEST;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.gongjakso.server.domain.apply.repository;

import com.gongjakso.server.domain.apply.entity.Apply;
import org.springframework.data.jpa.repository.JpaRepository;

public interface ApplyRepository extends JpaRepository<Apply,Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.gongjakso.server.domain.apply.service;

import com.gongjakso.server.domain.apply.dto.AddApplyReq;
import com.gongjakso.server.domain.apply.entity.Apply;
import com.gongjakso.server.domain.apply.repository.ApplyRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.stereotype.Service;

@Service
@Transactional
@RequiredArgsConstructor
public class ApplyService {
private final ApplyRepository applyRepository;
public Apply save(AddApplyReq req){
return applyRepository.save(req.toEntity());
}
}

0 comments on commit dacfe3b

Please sign in to comment.