API 목록

세미나 출석

정회원만 출석이 가능합니다.

요청

Request

PATCH /seminars/14/attendances HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 31
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1ODYiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTQ4LCJleHAiOjE3MTExMjI3NDh9._l13kiB5f7G80-Zl2Iaw8gZM8bG3VUU1hKNVkyWJTuo

{
  "attendanceCode" : "2868"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회원)

Path Parameters

Table 1. /seminars/{seminarId}/attendances
Parameter Description

seminarId

세미나의 ID

Request Fields

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

attendanceCode

String

true

세미나 출석 코드

응답

Response

HTTP/1.1 201 Created
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: 46

{
  "id" : 18,
  "statusType" : "ATTENDANCE"
}

Response Fields

Path Type Description

id

Number

세미나 출석 ID

statusType

String

출석 상태

세미나 출석 상태 변경

요청

Request

PATCH /seminars/attendances/4 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 67
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NjIiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQLFJPTEVf7ZqM7J6lIiwiaWF0IjoxNzExMTE5MTQ4LCJleHAiOjE3MTExMjI3NDh9.DPHP9e2zowGyuzHIRCizXZ4qXPBTTA9c419UZHV998U

{
  "excuse" : "늦게 일어나서",
  "statusType" : "LATENESS"
}

Request Cookies

Name Description

accessToken

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

Path Parameters

Table 2. /seminars/attendances/{attendanceId}
Parameter Description

attendanceId

출석 상태를 변경하고자 하는 세미나 출석 ID

Request Fields

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

excuse

String

세미나 사유

statusType

String

true

출석 타입

응답

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 /seminars/attendances HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1NjAiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQLFJPTEVf7ZqM7J6lIiwiaWF0IjoxNzExMTE5MTQ4LCJleHAiOjE3MTExMjI3NDh9.oM1PdlJD8rD8Bh6sF5bGFHtrol6HVVbpZ5uGXIsg-lA

Request Cookies

Name Description

accessToken

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

Query Parameters

파라미터명 필수값 양식 설명

page

페이지 (default: 0)

size

한 페이지당 불러올 개수 (default: 10)

응답

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: 1209

{
  "content" : [ {
    "memberId" : 561,
    "memberName" : "김기철",
    "generation" : "15.0",
    "attendances" : [ {
      "seminarId" : 4,
      "attendanceId" : 3,
      "attendanceStatus" : "LATENESS",
      "excuse" : null,
      "attendDate" : "2024-03-22"
    } ],
    "totalAttendance" : 0,
    "totalLateness" : 1,
    "totalAbsence" : 0,
    "totalPersonal" : 0
  }, {
    "memberId" : 560,
    "memberName" : "김영환",
    "generation" : "15.0",
    "attendances" : [ {
      "seminarId" : 4,
      "attendanceId" : 2,
      "attendanceStatus" : "ATTENDANCE",
      "excuse" : null,
      "attendDate" : "2024-03-22"
    } ],
    "totalAttendance" : 1,
    "totalLateness" : 0,
    "totalAbsence" : 0,
    "totalPersonal" : 0
  } ],
  "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[].memberId

Number

회원 ID

content[].memberName

String

회원 이름

content[].generation

String

회원 기수

content[].attendances[]

Array

회원 출석 정보 리스트

content[].attendances[].seminarId

Number

세미나 ID

content[].attendances[].attendanceId

Number

세미나 출석 ID

content[].attendances[].attendDate

String

세미나 출석 날짜

content[].attendances[].attendanceStatus

String

세미나 출석 상태

content[].attendances[].excuse

Null

세미나 결석/지각 사유

content[].totalAttendance

Number

총 출석일

content[].totalLateness

Number

총 지각일

content[].totalAbsence

Number

총 결석일

content[].totalPersonal

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

한 페이지당 데이터 개수