Skip to content

Workout-Study/WorkoutStudy_Backend_My_Fit

Repository files navigation

WorkoutStudy_Backend_My_Fit_Service

Intro

Fit-Mate App Aplication

  • 이 서비스는 위 Fit mate 프로젝트의 운동 기록, 운동 인증, 투표, 벌금 관리 역할을 담당하는 서비스 입니다.

Period

Version 1.0.0 : 2024.03.08 ~ 2024.04.20
Version 2.0.0 : 2024.05.01 ~

Architecture

Used Tools

Application


Database

Infra

Test

Docs

Cloud

Communication

Git Strategy

  • Git flow

API document

환경 url

테스트

http://127.0.0.1

운영서버

http://52.78.208.77

http-request

POST /my-fit-service/records HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 210
Host: localhost:8080

{"requestUserId":"testUserId","recordStartDate":"2024-04-19T08:17:24.200708300Z","recordEndDate":"2024-04-20T12:04:04.200708300Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}

request-fields

Path Type Description

requestUserId

String

Fit record를 등록하는 User id

recordStartDate

String

기록 시작 시간

recordEndDate

String

기록 종료 시간

multiMediaEndPoints

Array

멀티 미디어 end point list ( 주어진 index 순으로 return )

request-body

{"requestUserId":"testUserId","recordStartDate":"2024-04-19T08:17:24.200708300Z","recordEndDate":"2024-04-20T12:04:04.200708300Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}

curl-request

$ curl 'http://localhost:8080/my-fit-service/records' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId","recordStartDate":"2024-04-19T08:17:24.200708300Z","recordEndDate":"2024-04-20T12:04:04.200708300Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}'

response-fields

Path Type Description

isRegisterSuccess

Boolean

등록 성공 여부

fitRecordId

Number

등록 시 fit record id ( 실패시 null )

response-body

{"isRegisterSuccess":true,"fitRecordId":1}

http-response

HTTP/1.1 201 Created
Content-Length: 42
Content-Type: application/json

{"isRegisterSuccess":true,"fitRecordId":1}

path-parameters

Table 1. /my-fit-service/records/{fit-record-id}
Parameter Description

fit-record-id

삭제할 Fit record id

http-request

DELETE /my-fit-service/records/124 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 30
Host: localhost:8080

{"requestUserId":"testUserId"}

request-fields

Path Type Description

requestUserId

String

Fit record를 삭제 요청한 User id

request-body

{"requestUserId":"testUserId"}

curl-request

$ curl 'http://localhost:8080/my-fit-service/records/124' -i -X DELETE \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId"}'

response-fields

Path Type Description

isDeleteSuccess

Boolean

등록 성공 여부

response-body

{"isDeleteSuccess":true}

http-response

HTTP/1.1 200 OK
Content-Length: 24
Content-Type: application/json

{"isDeleteSuccess":true}

http-request

GET /my-fit-service/records/filters?userId=testUserId&recordEndStartDate=2024-04-01T00:00:00Z&recordEndEndDate=2024-04-30T23:59:59Z HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

curl-request

$ curl 'http://localhost:8080/my-fit-service/records/filters?userId=testUserId&recordEndStartDate=2024-04-01T00:00:00Z&recordEndEndDate=2024-04-30T23:59:59Z' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

fitRecordDetailResponseDtoList[]

Array

fit record list

fitRecordDetailResponseDtoList[].fitRecordId

Number

fit record의 id

fitRecordDetailResponseDtoList[].recordStartDate

String

fit record의 기록 시작시간

fitRecordDetailResponseDtoList[].recordEndDate

String

fit record의 기록 종료시간

fitRecordDetailResponseDtoList[].createdAt

String

fit record의 생성일

fitRecordDetailResponseDtoList[].multiMediaEndPoints

Array

fit record의 멀티 미디어 end point list

fitRecordDetailResponseDtoList[].registeredFitCertifications[]

Array

fit record가 등록돼있는 fit certification 목록 ( fit group 포함 )

fitRecordDetailResponseDtoList[].registeredFitCertifications[].fitGroupId

Number

인증이 등록돼있는 fit group id

fitRecordDetailResponseDtoList[].registeredFitCertifications[].fitGroupName

String

인증이 등록돼있는 fit group의 이름

fitRecordDetailResponseDtoList[].registeredFitCertifications[].fitCertificationId

Number

fit record가 인증으로 등록 돼 있는 fit certification id

fitRecordDetailResponseDtoList[].registeredFitCertifications[].certificationStatus

String

인증 상태 (REQUESTED, CERTIFIED, REJECTED)

fitRecordDetailResponseDtoList[].registeredFitCertifications[].createdAt

String

인증 등록 일시

fitRecordDetailResponseDtoList[].registeredFitCertifications[].voteEndDate

String

인증 종료 일시

response-body

{"fitRecordDetailResponseDtoList":[{"fitRecordId":0,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]},{"fitRecordId":1,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]},{"fitRecordId":2,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]},{"fitRecordId":3,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]}]}

http-response

HTTP/1.1 200 OK
Content-Length: 2748
Content-Type: application/json

{"fitRecordDetailResponseDtoList":[{"fitRecordId":0,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]},{"fitRecordId":1,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]},{"fitRecordId":2,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]},{"fitRecordId":3,"recordStartDate":"2024-04-19T08:17:27.064607600Z","recordEndDate":"2024-04-20T12:04:07.064607600Z","createdAt":"2024-04-19T08:17:27.066602500Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.064607600Z","voteEndDate":"2024-04-19T20:17:27.064607600Z"}]}]}

http-request

GET /my-fit-service/records/filters/slice?userId=testUserId&recordEndStartDate=2024-04-01T00:00:00Z&recordEndEndDate=2024-04-30T23:59:59Z&pageNumber=0&pageSize=5 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

curl-request

$ curl 'http://localhost:8080/my-fit-service/records/filters/slice?userId=testUserId&recordEndStartDate=2024-04-01T00:00:00Z&recordEndEndDate=2024-04-30T23:59:59Z&pageNumber=0&pageSize=5' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

content[]

Array

fit record list

content[].fitRecordId

Number

fit record의 id

content[].recordStartDate

String

fit record의 기록 시작시간

content[].recordEndDate

String

fit record의 기록 종료시간

content[].createdAt

String

fit record의 생성일

content[].multiMediaEndPoints

Array

fit record의 멀티 미디어 end point list

content[].registeredFitCertifications[]

Array

fit record가 등록돼있는 fit certification 목록 ( fit group 포함 )

content[].registeredFitCertifications[].fitGroupId

Number

인증이 등록돼있는 fit group id

content[].registeredFitCertifications[].fitGroupName

String

인증이 등록돼있는 fit group의 이름

content[].registeredFitCertifications[].fitCertificationId

Number

fit record가 인증으로 등록 돼 있는 fit certification id

content[].registeredFitCertifications[].certificationStatus

String

인증 상태 (REQUESTED, CERTIFIED, REJECTED)

content[].registeredFitCertifications[].createdAt

String

인증 등록 일시

content[].registeredFitCertifications[].voteEndDate

String

인증 종료 일시

pageable

Object

pageable object

pageable.pageNumber

Number

조회 페이지 번호

pageable.pageSize

Number

조회 한 size

pageable.sort

Object

sort object

pageable.sort.empty

Boolean

sort 요청 여부

pageable.sort.sorted

Boolean

sort 여부

pageable.sort.unsorted

Boolean

unsort 여부

pageable.offset

Number

대상 시작 번호

pageable.unpaged

Boolean

unpaged

pageable.paged

Boolean

paged

size

Number

List 크기

number

Number

조회 페이지 번호

sort

Object

sort object

sort.empty

Boolean

sort 요청 여부

sort.sorted

Boolean

sort 여부

sort.unsorted

Boolean

unsort 여부

numberOfElements

Number

numberOfElements

first

Boolean

처음인지 여부

last

Boolean

마지막인지 여부

empty

Boolean

비어있는지 여부

response-body

{"content":[{"fitRecordId":0,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]},{"fitRecordId":1,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]},{"fitRecordId":2,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]},{"fitRecordId":3,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":" 뿬吏깆㎟","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":" 젙 씪 뿬吏깆㎟ 紐⑥엫","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]}],"pageable":{"pageNumber":0,"pageSize":5,"sort":{"empty":true,"sorted":false,"unsorted":true},"offset":0,"unpaged":false,"paged":true},"size":5,"number":0,"sort":{"empty":true,"sorted":false,"unsorted":true},"numberOfElements":4,"first":true,"last":false,"empty":false}

http-response

HTTP/1.1 200 OK
Content-Length: 2993
Content-Type: application/json

{"content":[{"fitRecordId":0,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]},{"fitRecordId":1,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]},{"fitRecordId":2,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]},{"fitRecordId":3,"recordStartDate":"2024-04-19T08:17:27.127439600Z","recordEndDate":"2024-04-20T12:04:07.127439600Z","createdAt":"2024-04-19T08:17:27.128436700Z","multiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"],"registeredFitCertifications":[{"fitGroupId":5,"fitGroupName":"헬짱짱","fitCertificationId":23,"certificationStatus":"REQUESTED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"},{"fitGroupId":767,"fitGroupName":"정일헬짱짱 모임","fitCertificationId":28,"certificationStatus":"CERTIFIED","createdAt":"2024-04-19T08:17:27.127439600Z","voteEndDate":"2024-04-19T20:17:27.127439600Z"}]}],"pageable":{"pageNumber":0,"pageSize":5,"sort":{"empty":true,"sorted":false,"unsorted":true},"offset":0,"unpaged":false,"paged":true},"size":5,"number":0,"sort":{"empty":true,"sorted":false,"unsorted":true},"numberOfElements":4,"first":true,"last":false,"empty":false}

http-request

POST /my-fit-service/certifications HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 71
Host: localhost:8080

{"requestUserId":"testUserId","fitRecordId":137,"fitGroupIds":[13,7,2]}

request-fields

Path Type Description

requestUserId

String

Fit 인증을 등록하는 User id

fitRecordId

Number

인증으로 등록할 record의 id

fitGroupIds

Array

인증으로 등록할 group의 id list

request-body

{"requestUserId":"testUserId","fitRecordId":137,"fitGroupIds":[13,7,2]}

curl-request

$ curl 'http://localhost:8080/my-fit-service/certifications' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId","fitRecordId":137,"fitGroupIds":[13,7,2]}'

response-fields

Path Type Description

isRegisterSuccess

Boolean

등록 성공 여부

response-body

{"isRegisterSuccess":true}

http-response

HTTP/1.1 201 Created
Content-Length: 26
Content-Type: application/json

{"isRegisterSuccess":true}

path-parameters

Table 2. /my-fit-service/certifications/{fit-certification-id}
Parameter Description

fit-certification-id

삭제할 Fit certification id

http-request

DELETE /my-fit-service/certifications/137 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 30
Host: localhost:8080

{"requestUserId":"testUserId"}

request-fields

Path Type Description

requestUserId

String

Fit certification을 삭제 요청한 User id

request-body

{"requestUserId":"testUserId"}

curl-request

$ curl 'http://localhost:8080/my-fit-service/certifications/137' -i -X DELETE \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId"}'

response-fields

Path Type Description

isDeleteSuccess

Boolean

삭제 성공 여부

response-body

{"isDeleteSuccess":true}

http-response

HTTP/1.1 200 OK
Content-Length: 24
Content-Type: application/json

{"isDeleteSuccess":true}

path-parameters

Table 3. /my-fit-service/certifications/filters/{fit-group-id}/{user-id}
Parameter Description

fit-group-id

진행중인 Fit certification list를 조회할 group id

user-id

Fit certification list를 조회하는 User id

http-request

GET /my-fit-service/certifications/filters/12/testUserId HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

request-body

curl-request

$ curl 'http://localhost:8080/my-fit-service/certifications/filters/12/testUserId' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

fitCertificationDetails[]

Array

진행중인 인증 list

fitCertificationDetails[].certificationId

Number

운동 인증 id (fit certification id)

fitCertificationDetails[].recordId

Number

운동 인증의 record id

fitCertificationDetails[].certificationRequestUserId

String

운동 인증을 요청한 user id

fitCertificationDetails[].isUserVoteDone

Boolean

조회를 요청한 유저가 투표 했는지 여부

fitCertificationDetails[].isUserAgree

Boolean

조회를 요청한 유저가 찬성 했는지 여부

fitCertificationDetails[].agreeCount

Number

찬성 수

fitCertificationDetails[].disagreeCount

Number

반대 수

fitCertificationDetails[].maxAgreeCount

Number

최대 투표 수

fitCertificationDetails[].thumbnailEndPoint

String

기록 썸네일 사진

fitCertificationDetails[].fitRecordStartDate

String

기록 시작 일자

fitCertificationDetails[].fitRecordEndDate

String

기록 종료 일자

fitCertificationDetails[].voteEndDate

String

투표 종료 일자

response-body

{"fitCertificationDetails":[{"certificationId":0,"recordId":0,"certificationRequestUserId":"testUserId0","isUserVoteDone":true,"isUserAgree":false,"agreeCount":4,"disagreeCount":1,"maxAgreeCount":13,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"},{"certificationId":1,"recordId":1,"certificationRequestUserId":"testUserId1","isUserVoteDone":true,"isUserAgree":false,"agreeCount":5,"disagreeCount":2,"maxAgreeCount":14,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"},{"certificationId":2,"recordId":2,"certificationRequestUserId":"testUserId2","isUserVoteDone":true,"isUserAgree":false,"agreeCount":6,"disagreeCount":3,"maxAgreeCount":15,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"},{"certificationId":3,"recordId":3,"certificationRequestUserId":"testUserId3","isUserVoteDone":true,"isUserAgree":false,"agreeCount":7,"disagreeCount":4,"maxAgreeCount":16,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"}]}

http-response

HTTP/1.1 200 OK
Content-Length: 1633
Content-Type: application/json

{"fitCertificationDetails":[{"certificationId":0,"recordId":0,"certificationRequestUserId":"testUserId0","isUserVoteDone":true,"isUserAgree":false,"agreeCount":4,"disagreeCount":1,"maxAgreeCount":13,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"},{"certificationId":1,"recordId":1,"certificationRequestUserId":"testUserId1","isUserVoteDone":true,"isUserAgree":false,"agreeCount":5,"disagreeCount":2,"maxAgreeCount":14,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"},{"certificationId":2,"recordId":2,"certificationRequestUserId":"testUserId2","isUserVoteDone":true,"isUserAgree":false,"agreeCount":6,"disagreeCount":3,"maxAgreeCount":15,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"},{"certificationId":3,"recordId":3,"certificationRequestUserId":"testUserId3","isUserVoteDone":true,"isUserAgree":false,"agreeCount":7,"disagreeCount":4,"maxAgreeCount":16,"fitRecordStartDate":"2024-04-19T08:17:23.876574800Z","fitRecordEndDate":"2024-04-19T11:04:03.876574800Z","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","voteEndDate":"2024-04-30T22:04:03.876574800Z"}]}

path-parameters

Table 4. /my-fit-service/my-fits/certifications/progresses/{fit-group-id}
Parameter Description

fit-group-id

fit mate들의 certification 진척도를 조회할 group id

http-request

GET /my-fit-service/my-fits/certifications/progresses/12 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

request-body

curl-request

$ curl 'http://localhost:8080/my-fit-service/my-fits/certifications/progresses/12' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

fitGroupId

Number

조회한 fit group id

fitGroupName

String

조회한 fit group name

cycle

Number

인증 주기 ( 1: 일주일, 2: 한달, 3: 일년 ) - 현재는 일주일만 구현

frequency

Number

주기별 인증 필요 횟수

fitCertificationProgresses[]

Array

fit mate들의 인증 진행도

fitCertificationProgresses[].fitMateUserId

String

fit mate의 user id

fitCertificationProgresses[].certificationCount

Number

금주 인증 횟수

response-body

{"fitGroupId":12,"fitGroupName":" 뿬 뿬 뿬  뿬 뒪瑜   빐 슂","cycle":1,"frequency":7,"fitCertificationProgresses":[{"fitMateUserId":"testUserId1","certificationCount":3},{"fitMateUserId":"testUserId2","certificationCount":1}]}

http-response

HTTP/1.1 200 OK
Content-Length: 226
Content-Type: application/json

{"fitGroupId":12,"fitGroupName":"헬헬헬 헬스를 해요","cycle":1,"frequency":7,"fitCertificationProgresses":[{"fitMateUserId":"testUserId1","certificationCount":3},{"fitMateUserId":"testUserId2","certificationCount":1}]}

http-request

POST /my-fit-service/votes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 76
Host: localhost:8080

{"requestUserId":"testUserId","agree":true,"targetCategory":1,"targetId":13}

request-fields

Path Type Description

requestUserId

String

Vote를 등록하는 User id

agree

Boolean

찬반 여부

targetCategory

Number

투표를 등록할 target의 category ( target category - 1: fit certification )

targetId

Number

투표를 등록할 target의 id ( ex. fit certification id )

request-body

{"requestUserId":"testUserId","agree":true,"targetCategory":1,"targetId":13}

curl-request

$ curl 'http://localhost:8080/my-fit-service/votes' -i -X POST \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId","agree":true,"targetCategory":1,"targetId":13}'

response-fields

Path Type Description

isRegisterSuccess

Boolean

등록 성공 여부

response-body

{"isRegisterSuccess":true}

http-response

HTTP/1.1 201 Created
Content-Length: 26
Content-Type: application/json

{"isRegisterSuccess":true}

http-request

DELETE /my-fit-service/votes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 63
Host: localhost:8080

{"requestUserId":"testUserId","targetCategory":1,"targetId":13}

request-fields

Path Type Description

requestUserId

String

Vote를 삭제요청한 User id

targetCategory

Number

투표를 삭제할 target의 category ( target category - 1: fit certification )

targetId

Number

투표를 삭제할 target의 id ( ex. fit certification id )

request-body

{"requestUserId":"testUserId","targetCategory":1,"targetId":13}

curl-request

$ curl 'http://localhost:8080/my-fit-service/votes' -i -X DELETE \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId","targetCategory":1,"targetId":13}'

response-fields

Path Type Description

isDeleteSuccess

Boolean

삭제 성공 여부

response-body

{"isDeleteSuccess":true}

http-response

HTTP/1.1 200 OK
Content-Length: 24
Content-Type: application/json

{"isDeleteSuccess":true}

http-request

PUT /my-fit-service/votes HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 76
Host: localhost:8080

{"requestUserId":"testUserId","agree":true,"targetCategory":1,"targetId":13}

request-fields

Path Type Description

requestUserId

String

Vote를 수정요청한 User id

agree

Boolean

찬반 여부

targetCategory

Number

투표를 수정할 target의 category ( target category - 1: fit certification )

targetId

Number

투표를 수정할 target의 id ( ex. fit certification id )

request-body

{"requestUserId":"testUserId","agree":true,"targetCategory":1,"targetId":13}

curl-request

$ curl 'http://localhost:8080/my-fit-service/votes' -i -X PUT \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId","agree":true,"targetCategory":1,"targetId":13}'

response-fields

Path Type Description

isUpdateSuccess

Boolean

등록 성공 여부

response-body

{"isUpdateSuccess":true}

http-response

HTTP/1.1 200 OK
Content-Length: 24
Content-Type: application/json

{"isUpdateSuccess":true}

http-request

GET /my-fit-service/my-fits/certifications/progresses?requestUserId=testUserId HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

curl-request

$ curl 'http://localhost:8080/my-fit-service/my-fits/certifications/progresses?requestUserId=testUserId' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

fitCertificationProgresses[]

Array

진척도 list

fitCertificationProgresses[].fitGroupId

Number

fit group id

fitCertificationProgresses[].fitGroupName

String

fit group 이름

fitCertificationProgresses[].thumbnailEndPoint

String

fit group의 썸네일 사진 end point

fitCertificationProgresses[].cycle

Number

인증 주기 ( 1: 일주일, 2: 한달, 3: 일년 ) - 현재는 일주일만 구현

fitCertificationProgresses[].frequency

Number

주기별 인증 필요 횟수

fitCertificationProgresses[].certificationCount

Number

금주 인증 횟수

response-body

{"fitCertificationProgresses":[{"fitGroupId":1,"fitGroupName":" 뿬李쎈뱾    씪二쇱씪 뿉 7踰   슫 룞 빐 빞二   뒪 꽣 뵒1","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","cycle":1,"frequency":8,"certificationCount":5},{"fitGroupId":2,"fitGroupName":" 뿬李쎈뱾    씪二쇱씪 뿉 7踰   슫 룞 빐 빞二   뒪 꽣 뵒2","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","cycle":1,"frequency":9,"certificationCount":6},{"fitGroupId":3,"fitGroupName":" 뿬李쎈뱾    씪二쇱씪 뿉 7踰   슫 룞 빐 빞二   뒪 꽣 뵒3","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","cycle":1,"frequency":10,"certificationCount":7}]}

http-response

HTTP/1.1 200 OK
Content-Length: 678
Content-Type: application/json

{"fitCertificationProgresses":[{"fitGroupId":1,"fitGroupName":"헬창들은 일주일에 7번 운동해야죠 스터디1","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","cycle":1,"frequency":8,"certificationCount":5},{"fitGroupId":2,"fitGroupName":"헬창들은 일주일에 7번 운동해야죠 스터디2","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","cycle":1,"frequency":9,"certificationCount":6},{"fitGroupId":3,"fitGroupName":"헬창들은 일주일에 7번 운동해야죠 스터디3","thumbnailEndPoint":"https://avatars.githubusercontent.com/u/105261146?v=4","cycle":1,"frequency":10,"certificationCount":7}]}

http-request

GET /my-fit-service/my-fits/certifications/need-votes?requestUserId=testUserId HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

curl-request

$ curl 'http://localhost:8080/my-fit-service/my-fits/certifications/need-votes?requestUserId=testUserId' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

needVoteCertificationFitGroupList[]

Array

유저가 투표해야할 인증 목록

needVoteCertificationFitGroupList[].fitGroupId

Number

투표해야할 인증이 있는 fit group id

needVoteCertificationFitGroupList[].fitGroupName

String

투표해야할 인증이 있는 fit group의 이름

needVoteCertificationFitGroupList[].needVoteCertificationList[]

Array

fit group 내의 투표해야할 인증 목록

needVoteCertificationFitGroupList[].needVoteCertificationList[].certificationId

Number

투표해야할 인증의 id ( fit certification id )

needVoteCertificationFitGroupList[].needVoteCertificationList[].recordId

Number

투표해야할 인증의 recordId ( fit record id )

needVoteCertificationFitGroupList[].needVoteCertificationList[].certificationRequestUserId

String

투표해야할 인증을 요청한 유저 id

needVoteCertificationFitGroupList[].needVoteCertificationList[].agreeCount

Number

찬성 수

needVoteCertificationFitGroupList[].needVoteCertificationList[].disagreeCount

Number

반대 수

needVoteCertificationFitGroupList[].needVoteCertificationList[].maxAgreeCount

Number

최대 투표 수

needVoteCertificationFitGroupList[].needVoteCertificationList[].voteEndDate

String

투표 종료 일자

needVoteCertificationFitGroupList[].needVoteCertificationList[].recordMultiMediaEndPoints[]

Array

인증을 요청한 기록의 multi media end points

response-body

{"needVoteCertificationFitGroupList":[{"fitGroupId":1,"fitGroupName":" 뿬李쎈뱾    씪二쇱씪 뿉 7踰   슫 룞 빐 빞二   뒪 꽣 뵒","needVoteCertificationList":[{"certificationId":1,"recordId":2,"certificationRequestUserId":"testUserId","agreeCount":4,"disagreeCount":2,"maxAgreeCount":10,"voteEndDate":"2024-04-19T08:17:30.524382300Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]},{"certificationId":4,"recordId":2,"certificationRequestUserId":"testUserId","agreeCount":2,"disagreeCount":1,"maxAgreeCount":7,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}]},{"fitGroupId":2,"fitGroupName":" 뿬李쎈뱾    씪二쇱씪 뿉 7踰   슫 룞 빐 빞二   뒪 꽣 뵒","needVoteCertificationList":[{"certificationId":2,"recordId":3,"certificationRequestUserId":"testUserId","agreeCount":5,"disagreeCount":3,"maxAgreeCount":11,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]},{"certificationId":5,"recordId":3,"certificationRequestUserId":"testUserId","agreeCount":3,"disagreeCount":2,"maxAgreeCount":8,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}]},{"fitGroupId":3,"fitGroupName":" 뿬李쎈뱾    씪二쇱씪 뿉 7踰   슫 룞 빐 빞二   뒪 꽣 뵒","needVoteCertificationList":[{"certificationId":3,"recordId":4,"certificationRequestUserId":"testUserId","agreeCount":6,"disagreeCount":4,"maxAgreeCount":12,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]},{"certificationId":6,"recordId":4,"certificationRequestUserId":"testUserId","agreeCount":4,"disagreeCount":3,"maxAgreeCount":9,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}]}]}

http-response

HTTP/1.1 200 OK
Content-Length: 1971
Content-Type: application/json

{"needVoteCertificationFitGroupList":[{"fitGroupId":1,"fitGroupName":"헬창들은 일주일에 7번 운동해야죠 스터디","needVoteCertificationList":[{"certificationId":1,"recordId":2,"certificationRequestUserId":"testUserId","agreeCount":4,"disagreeCount":2,"maxAgreeCount":10,"voteEndDate":"2024-04-19T08:17:30.524382300Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]},{"certificationId":4,"recordId":2,"certificationRequestUserId":"testUserId","agreeCount":2,"disagreeCount":1,"maxAgreeCount":7,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}]},{"fitGroupId":2,"fitGroupName":"헬창들은 일주일에 7번 운동해야죠 스터디","needVoteCertificationList":[{"certificationId":2,"recordId":3,"certificationRequestUserId":"testUserId","agreeCount":5,"disagreeCount":3,"maxAgreeCount":11,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]},{"certificationId":5,"recordId":3,"certificationRequestUserId":"testUserId","agreeCount":3,"disagreeCount":2,"maxAgreeCount":8,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}]},{"fitGroupId":3,"fitGroupName":"헬창들은 일주일에 7번 운동해야죠 스터디","needVoteCertificationList":[{"certificationId":3,"recordId":4,"certificationRequestUserId":"testUserId","agreeCount":6,"disagreeCount":4,"maxAgreeCount":12,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]},{"certificationId":6,"recordId":4,"certificationRequestUserId":"testUserId","agreeCount":4,"disagreeCount":3,"maxAgreeCount":9,"voteEndDate":"2024-04-19T08:17:30.525379200Z","recordMultiMediaEndPoints":["https://avatars.githubusercontent.com/u/105261146?v=4"]}]}]}

path-parameters

Table 5. /my-fit-service/penalties/filters/by-users/{user-id}
Parameter Description

user-id

penalty list를 조회할 user id

http-request

GET /my-fit-service/penalties/filters/by-users/testUserId?startDate=2024-04-01T00:00:00Z&endDate=2024-04-30T23:59:59Z&onlyPaid=true&onlyNotPaid=false&pageNumber=0&pageSize=5 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

curl-request

$ curl 'http://localhost:8080/my-fit-service/penalties/filters/by-users/testUserId?startDate=2024-04-01T00:00:00Z&endDate=2024-04-30T23:59:59Z&onlyPaid=true&onlyNotPaid=false&pageNumber=0&pageSize=5' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

pageNumber

Number

조회 페이지 번호

pageSize

Number

조회 한 페이지 size

hasNext

Boolean

다음 Slice가 있는지

totalAmount

Number

총 금액 ( 결과 리스트 안의 Amount의 sum이 아닌 조회 조건으로 Paging 되지 않은 끝 Row의 Amount sum )

content[]

Array

fit penalty 목록

content[].fitPenaltyId

Number

fit penalty id

content[].fitGroupId

Number

fit penalty가 발생한 fit group id

content[].userId

String

fit penalty (벌금) 이 발부된 user id

content[].amount

Number

fit penalty 금액

content[].paid

Boolean

fit penalty 납부 했는지 여부

content[].noNeedPay

Boolean

fit penalty 납부할 필요 없는지 여부 ( ex-fit reader가 취소시켰을때 true )

content[].createdAt

String

fit penalty가 발생한 일시

response-body

{"pageNumber":0,"pageSize":5,"hasNext":false,"totalAmount":15000,"content":[{"fitPenaltyId":1,"fitGroupId":4,"userId":"testUserId1","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.995447900Z"},{"fitPenaltyId":2,"fitGroupId":5,"userId":"testUserId2","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.995447900Z"},{"fitPenaltyId":3,"fitGroupId":6,"userId":"testUserId3","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.995447900Z"}]}

http-response

HTTP/1.1 200 OK
Content-Length: 515
Content-Type: application/json

{"pageNumber":0,"pageSize":5,"hasNext":false,"totalAmount":15000,"content":[{"fitPenaltyId":1,"fitGroupId":4,"userId":"testUserId1","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.995447900Z"},{"fitPenaltyId":2,"fitGroupId":5,"userId":"testUserId2","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.995447900Z"},{"fitPenaltyId":3,"fitGroupId":6,"userId":"testUserId3","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.995447900Z"}]}

path-parameters

Table 6. /my-fit-service/penalties/filters/by-fit-group/{fit-group-id}
Parameter Description

fit-group-id

penalty list를 조회할 fit group id

http-request

GET /my-fit-service/penalties/filters/by-fit-group/1634?startDate=2024-04-01T00:00:00Z&endDate=2024-04-30T23:59:59Z&onlyPaid=true&onlyNotPaid=false&pageNumber=0&pageSize=5 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Host: localhost:8080

curl-request

$ curl 'http://localhost:8080/my-fit-service/penalties/filters/by-fit-group/1634?startDate=2024-04-01T00:00:00Z&endDate=2024-04-30T23:59:59Z&onlyPaid=true&onlyNotPaid=false&pageNumber=0&pageSize=5' -i -X GET \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json'

response-fields

Path Type Description

pageNumber

Number

조회 페이지 번호

pageSize

Number

조회 한 페이지 size

hasNext

Boolean

다음 Slice가 있는지

totalAmount

Number

총 금액 ( 결과 리스트 안의 Amount의 sum이 아닌 조회 조건으로 Paging 되지 않은 끝 Row의 Amount sum )

content[]

Array

fit penalty 목록

content[].fitPenaltyId

Number

fit penalty id

content[].fitGroupId

Number

fit penalty가 발생한 fit group id

content[].userId

String

fit penalty (벌금) 이 발부된 user id

content[].amount

Number

fit penalty 금액

content[].paid

Boolean

fit penalty 납부 했는지 여부

content[].noNeedPay

Boolean

fit penalty 납부할 필요 없는지 여부 ( ex-fit reader가 취소시켰을때 true )

content[].createdAt

String

fit penalty가 발생한 일시

response-body

{"pageNumber":0,"pageSize":5,"hasNext":false,"totalAmount":15000,"content":[{"fitPenaltyId":1,"fitGroupId":4,"userId":"testUserId1","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.935608300Z"},{"fitPenaltyId":2,"fitGroupId":5,"userId":"testUserId2","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.935608300Z"},{"fitPenaltyId":3,"fitGroupId":6,"userId":"testUserId3","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.935608300Z"}]}

http-response

HTTP/1.1 200 OK
Content-Length: 515
Content-Type: application/json

{"pageNumber":0,"pageSize":5,"hasNext":false,"totalAmount":15000,"content":[{"fitPenaltyId":1,"fitGroupId":4,"userId":"testUserId1","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.935608300Z"},{"fitPenaltyId":2,"fitGroupId":5,"userId":"testUserId2","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.935608300Z"},{"fitPenaltyId":3,"fitGroupId":6,"userId":"testUserId3","amount":5000,"paid":true,"noNeedPay":false,"createdAt":"2024-04-19T08:17:31.935608300Z"}]}

path-parameters

Table 7. /my-fit-service/management/penalties/{fit-penalty-id}
Parameter Description

fit-penalty-id

입금 완료 처리할 fit penalty id

http-request

PUT /my-fit-service/management/penalties/162 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 30
Host: localhost:8080

{"requestUserId":"testUserId"}

curl-request

$ curl 'http://localhost:8080/my-fit-service/management/penalties/162' -i -X PUT \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId"}'

response-fields

Path Type Description

isPaidSuccess

Boolean

수납 완료 등록 성공 여부

response-body

{"isPaidSuccess":true}

http-response

HTTP/1.1 200 OK
Content-Length: 22
Content-Type: application/json

{"isPaidSuccess":true}

path-parameters

Table 8. /my-fit-service/management/penalties/{fit-penalty-id}
Parameter Description

fit-penalty-id

입금 불필요 처리할 fit penalty id

http-request

DELETE /my-fit-service/management/penalties/162 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 30
Host: localhost:8080

{"requestUserId":"testUserId"}

curl-request

$ curl 'http://localhost:8080/my-fit-service/management/penalties/162' -i -X DELETE \
    -H 'Content-Type: application/json;charset=UTF-8' \
    -H 'Accept: application/json' \
    -d '{"requestUserId":"testUserId"}'

response-fields

Path Type Description

isNoNeedPaySuccess

Boolean

입금 불필요 등록 성공 여부

response-body

{"isNoNeedPaySuccess":true}

http-response

HTTP/1.1 200 OK
Content-Length: 27
Content-Type: application/json

{"isNoNeedPaySuccess":true}

<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.6/highlight.min.js"></script> <script>hljs.initHighlighting()</script>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published