API 목록

상벌점 로그 조회

요청

Request

GET /merits HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyODQiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.ZtHrxfVTsVLPulT1dEtoyxigqDeGzKRr4Nw5AccuVyE

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 969

{
  "content" : [ {
    "id" : 28,
    "giveTime" : "2024-03-22 14:52:21",
    "awarderName" : "TmUdqLeqEO",
    "awarderGeneration" : "15.0",
    "score" : 3,
    "meritTypeId" : 36,
    "isMerit" : true,
    "reason" : "0eb69017-d12d-4837-9609-09aab769433e"
  }, {
    "id" : 29,
    "giveTime" : "2024-03-22 14:52:21",
    "awarderName" : "kQTiAEaHBW",
    "awarderGeneration" : "15.0",
    "score" : 3,
    "meritTypeId" : 37,
    "isMerit" : true,
    "reason" : "fd81de24-5d43-4f9e-a11e-c739624cd388"
  } ],
  "pageable" : {
    "sort" : {
      "empty" : false,
      "sorted" : true,
      "unsorted" : false
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 10,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "first" : true,
  "size" : 10,
  "number" : 0,
  "sort" : {
    "empty" : false,
    "sorted" : true,
    "unsorted" : false
  },
  "numberOfElements" : 2,
  "empty" : false
}

Response Fields

Path Type Description

content[].id

Number

상벌점 로그의 ID

content[].giveTime

String

상벌점 로그의 생성시간

content[].awarderName

String

수상자의 이름

content[].awarderGeneration

String

수상자의 학번

content[].score

Number

상벌점 점수

content[].meritTypeId

Number

상벌점 타입의 ID

content[].reason

String

상벌점의 사유

content[].isMerit

Boolean

상벌점 타입

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 요소 수

size

Number

한 페이지당 데이터 개수

회원별 상벌점 로그 조회

요청

Request

GET /merits/members/253 HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyNTMiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.Eo9TYaGU3QdXxWTHcTizV4GPDlrnW4d8jRQXG_mNdCg

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

Path Parameters

Table 1. /merits/members/{memberId}
Parameter Description

memberId

조회하고자 하는 멤버의 ID 값

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1193

{
  "content" : [ {
    "id" : 13,
    "giveTime" : "2024-03-22 14:52:21",
    "score" : 3,
    "meritTypeId" : 17,
    "isMerit" : true,
    "reason" : "cad48a98-3217-4144-b796-2a8231851b10"
  }, {
    "id" : 14,
    "giveTime" : "2024-03-22 14:52:21",
    "score" : 2,
    "meritTypeId" : 18,
    "isMerit" : true,
    "reason" : "7436b732-0029-434b-a212-a09effbda57e"
  }, {
    "id" : 15,
    "giveTime" : "2024-03-22 14:52:21",
    "score" : -1,
    "meritTypeId" : 19,
    "isMerit" : true,
    "reason" : "5e2b9552-f2be-4e69-838e-7a96977d6fdb"
  }, {
    "id" : 16,
    "giveTime" : "2024-03-22 14:52:21",
    "score" : -3,
    "meritTypeId" : 20,
    "isMerit" : true,
    "reason" : "3f47087f-6e6a-4679-a413-a9a624c51de6"
  } ],
  "pageable" : {
    "sort" : {
      "empty" : false,
      "sorted" : true,
      "unsorted" : false
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 10,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 4,
  "first" : true,
  "size" : 10,
  "number" : 0,
  "sort" : {
    "empty" : false,
    "sorted" : true,
    "unsorted" : false
  },
  "numberOfElements" : 4,
  "empty" : false
}

Response Fields

Path Type Description

content[].id

Number

상벌점 로그의 ID

content[].giveTime

String

상벌점 로그의 생성시간

content[].score

Number

상벌점 점수

content[].meritTypeId

Number

상벌점 타입의 ID

content[].reason

String

상벌점의 사유

content[].isMerit

Boolean

상벌점 타입

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 요소 수

size

Number

한 페이지당 데이터 개수

상벌점 로그 생성

요청

Request

POST /merits HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 45
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyNzkiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.OzZG1foewUiNO5-U7Fd4lRq6q2DcRbawEtTD-mvi_QU

{
  "awarderId" : 279,
  "meritTypeId" : 32
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

Request Fields

필드명 타입 필수값 양식 설명

awarderId

Number

true

수여자의 ID

meritTypeId

Number

true

상벌점 타입의 ID

응답

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

상벌점 로그 삭제

요청

Request

DELETE /merits/1 HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyMzQiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQwLCJleHAiOjE3MTExMjI3NDB9.Pl9s_XaXsCYqbS_9rsc6EMBS2WXUt2mv8JiCxJ-iPJs

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

상벌점 타입 조회

요청

Request

GET /merits/types HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzMTAiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.9TgCWmmGEp94sZPCplFKBWqHL2-Sp3C_inhZWcvbk_E

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 855

{
  "content" : [ {
    "id" : 1,
    "score" : 0,
    "detail" : "virtual_merit",
    "isMerit" : false
  }, {
    "id" : 2,
    "score" : 3,
    "detail" : "결석",
    "isMerit" : false
  }, {
    "id" : 3,
    "score" : 3,
    "detail" : "지각 2회",
    "isMerit" : false
  }, {
    "id" : 48,
    "score" : 3,
    "detail" : "fc08a51f-a6ec-4baf-aaed-460935070022",
    "isMerit" : true
  } ],
  "pageable" : {
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 10,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 4,
  "first" : true,
  "size" : 10,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "numberOfElements" : 4,
  "empty" : false
}

Response Fields

Path Type Description

content[].id

Number

상벌점 타입의 ID

content[].score

Number

상벌점 점수

content[].detail

String

상벌점의 사유

content[].isMerit

Boolean

상벌점 타입

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 요소 수

size

Number

한 페이지당 데이터 개수

상벌점 타입 생성

요청

Request

POST /merits/types HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 79
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzMDciLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.9RCTWxAvx1WzVhLe16KSUCgjJ81sQ0MmywY3jO9HYJo

{
  "score" : 3,
  "reason" : "우수기술문서 작성",
  "isMerit" : true
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

Request Fields

필드명 타입 필수값 양식 설명

score

Number

true

상벌점 점수를 입력해주세요.

reason

String

true

상벌점 사유를 입력해주세요.

isMerit

Boolean

true

상벌점 타입을 입력해주세요

응답

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

상벌점 타입 수정

요청

Request

PUT /merits/types/44 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 72
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIzMDEiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.68hOaP9njHQVv3MLgvJGx9alNHwR_qlh6_ddXfqaYfM

{
  "score" : -5,
  "reason" : "거짓 스터디",
  "isMerit" : false
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

Request Fields

필드명 타입 필수값 양식 설명

score

Number

true

수정할 점수

reason

String

true

수정할 사유

isMerit

Boolean

true

수정할 상벌점 타입

응답

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /merits/types/44
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

회원 통계 상벌점 목록 조회

요청

Request

GET /merits/members HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIyMzgiLCJyb2xlcyI6IlJPTEVf7ZqM7J6lLFJPTEVf67aA7ZqM7J6lLFJPTEVf7ISc6riwLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQxLCJleHAiOjE3MTExMjI3NDF9.ta6vlAdNpLKhCgSxda7ilZoRVHFUNjbDa_Ysgeum0Lw

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_서기)

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 721

{
  "content" : [ {
    "memberId" : 238,
    "memberName" : "GdwwPJysax",
    "generation" : "15.0",
    "merit" : 2,
    "demerit" : 0
  }, {
    "memberId" : 239,
    "memberName" : "RhExWdTljI",
    "generation" : "15.0",
    "merit" : 7,
    "demerit" : 0
  } ],
  "pageable" : {
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 10,
    "paged" : true,
    "unpaged" : false
  },
  "last" : true,
  "totalPages" : 1,
  "totalElements" : 2,
  "first" : true,
  "size" : 10,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "numberOfElements" : 2,
  "empty" : false
}

Response Fields

Path Type Description

content[].memberId

Number

회원의 ID

content[].memberName

String

회원의 이름

content[].generation

String

회원의 기수

content[].merit

Number

상점

content[].demerit

Number

벌점

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 요소 수

size

Number

한 페이지당 데이터 개수