Skip to main content

개요

User 도메인은 사용자 계정 관리, 프로필 수정, 직원 관리, 연락처 관리 등의 기능을 제공합니다.

Types

UserType (Enum)

사용자 권한 레벨을 정의합니다.
  • CUSTOMER: 일반 고객
  • PARTNER: 파트너
  • PARTNERADMIN: 파트너 관리자
  • ADMIN: 관리자
  • SUPERADMIN: 최고 관리자

DuplicateCheckerType (Enum)

중복 확인 필드 타입을 정의합니다.
  • identity: 아이디
  • email: 이메일
  • phone: 휴대폰 번호
  • nickname: 닉네임

Queries

getUsers

사용자 목록을 페이지네이션으로 조회합니다.

GraphQL Signature

파라미터

Int
처음부터 가져올 개수
Int
끝에서부터 가져올 개수
String
검색 키워드 (이름, 이메일, 아이디 등)

응답

[UserEdge!]!
사용자 목록
PageInfo!
페이지 정보
Int!
전체 사용자 수

findUser

특정 사용자의 상세 정보를 조회합니다.

GraphQL Signature

파라미터

ID!
required
사용자 ID

예제


myInfo

현재 로그인한 사용자의 정보를 조회합니다.

GraphQL Signature

응답

User
현재 사용자 정보
이 API는 인증이 필요하며, JWT 토큰에서 사용자 정보를 추출합니다.

myContacts

현재 로그인한 사용자의 연락처 목록을 조회합니다.

GraphQL Signature

파라미터

String
연락처 타입 필터 (예: “email”, “phone”, “kakao”)

getAccommodationContacts

특정 숙박 시설의 직원 연락처 목록을 조회합니다.

GraphQL Signature

파라미터

ID!
required
숙박 시설 ID
String
연락처 타입 필터
String
권한 필터

verifyDuplicate

회원가입 시 아이디, 이메일, 닉네임 중복을 확인합니다.

GraphQL Signature

파라미터

String
확인할 아이디
String
확인할 이메일
String
확인할 닉네임

응답

ID!
확인 ID
Boolean!
중복 여부 (true: 사용 가능, false: 중복됨)
[DuplicateCheckerType]
중복된 필드 목록

예제


getPermanentToken

키오스크용 영구 토큰을 발급받습니다.

GraphQL Signature

파라미터

ID!
required
키오스크 ID

응답

String
영구 토큰

getPermanentTokenForAdmin

숙박 시설 관리자용 영구 토큰을 발급받습니다.

GraphQL Signature

파라미터

ID!
required
숙박 시설 ID

getUserLogs

사용자 활동 로그를 조회합니다.

GraphQL Signature

파라미터

ID!
required
숙박 시설 ID
ID
특정 사용자의 로그만 조회
관련 엔티티 ID (예: 예약 ID)
Int
처음부터 가져올 개수
String
이 커서 이후의 로그

getMyAgreement

특정 약관에 대한 현재 사용자의 동의 여부를 조회합니다.

GraphQL Signature

파라미터

String!
required
약관 타입 (예: “privacy”, “terms”, “marketing”)

응답

Boolean!
동의 여부

Mutations

signUp

새로운 사용자 계정을 생성합니다.

GraphQL Signature

파라미터

String!
required
사용자 아이디
String
휴대폰 번호
UserType
사용자 권한 레벨 (기본값: CUSTOMER)
String
SMS 인증 해시 (휴대폰 번호 입력 시 필수)
String!
required
사용자 이름
String!
required
사용자 닉네임
String!
required
이메일 주소
String!
required
비밀번호

응답

User
생성된 사용자 정보

예제

휴대폰 번호를 입력하는 경우, 반드시 requestSMSAuthconfirmSMSAuth를 통해 발급받은 smsAuthHash를 제공해야 합니다.

signIn

사용자 로그인을 수행하고 인증 토큰을 발급받습니다.

GraphQL Signature

파라미터

String!
required
사용자 아이디
String!
required
비밀번호

응답

TokenPayload
인증 토큰 정보

예제


signInByAdmin

관리자가 다른 사용자로 로그인합니다.

GraphQL Signature

파라미터

String!
required
로그인할 사용자 아이디
이 API는 ADMIN 또는 SUPERADMIN 권한이 필요합니다.

disableUser

사용자 계정을 비활성화하거나 활성화합니다.

GraphQL Signature

파라미터

String!
required
대상 사용자 아이디
Boolean
비활성화 여부 (true: 비활성화, false: 활성화)

addUserContact

사용자 연락처를 추가합니다.

GraphQL Signature

파라미터

ID!
required
사용자 ID
String!
required
연락처 타입 (예: “email”, “phone”, “kakao”)
String!
required
연락처 정보

modifyUserContact

사용자 연락처를 수정합니다.

GraphQL Signature

파라미터

ID!
required
수정할 연락처 ID
String
새로운 연락처 타입
String
새로운 연락처 정보

deleteUserContact

사용자 연락처를 삭제합니다.

GraphQL Signature

파라미터

ID!
required
삭제할 연락처 ID

updateInfo

현재 로그인한 사용자의 정보를 수정합니다.

GraphQL Signature

파라미터

ID
사용자 ID (관리자가 다른 사용자 수정 시 사용)
String
새로운 휴대폰 번호
String
SMS 인증 해시 (휴대폰 번호 변경 시 필수)
String
새로운 이름
String
새로운 닉네임
UserType
새로운 권한 레벨 (관리자만 가능)

updateEmployee

직원 정보를 수정합니다.

GraphQL Signature

파라미터

ID!
required
직원 ID
ID!
required
숙박 시설 ID
String
새로운 휴대폰 번호
String
새로운 이메일
String
새로운 이름
String
새로운 닉네임
String
새로운 비밀번호
String
새로운 권한

deleteEmployee

직원 계정을 삭제합니다.

GraphQL Signature

파라미터

ID!
required
삭제할 직원 ID

changePassword

비밀번호를 변경합니다.

GraphQL Signature

파라미터

ID
사용자 ID (관리자가 다른 사용자의 비밀번호 변경 시 사용)
String!
required
새로운 비밀번호
String
현재 비밀번호 (본인의 비밀번호 변경 시 필수)

changePasswordBySMSAuth

SMS 인증을 통해 비밀번호를 재설정합니다.

GraphQL Signature

파라미터

String!
required
사용자 아이디
String!
required
등록된 휴대폰 번호
String!
required
새로운 비밀번호
String!
required
SMS 인증 해시

예제


changePasswordByEmailAuth

이메일 인증을 통해 비밀번호를 재설정합니다.

GraphQL Signature

파라미터

String!
required
등록된 이메일 주소
String!
required
새로운 비밀번호
String!
required
이메일 인증 해시

sendPasswordResetEmail

비밀번호 재설정 이메일을 발송합니다.

GraphQL Signature

파라미터

String!
required
비밀번호를 재설정할 이메일 주소

응답

Boolean
이메일 발송 성공 여부

uploadThumbnail

사용자 프로필 이미지를 업로드합니다.

GraphQL Signature

파라미터

Upload!
required
업로드할 이미지 파일

응답

String
업로드된 이미지 URL

agreeTerms

약관에 동의합니다.

GraphQL Signature

파라미터

String!
required
약관 타입 (예: “privacy”, “terms”, “marketing”)
Boolean!
required
동의 여부

응답

Boolean!
동의 처리 성공 여부

사용 흐름

회원가입 흐름

  1. 중복 확인: verifyDuplicate로 아이디, 이메일, 닉네임 중복 확인
  2. SMS 인증 (선택): requestSMSAuthconfirmSMSAuth로 휴대폰 인증
  3. 회원가입: signUp으로 계정 생성
  4. 이메일 인증 (선택): requestEmailVerificationverifyEmail

비밀번호 재설정 흐름

방법 1: SMS 인증
  1. requestSMSAuth로 SMS 발송
  2. confirmSMSAuth로 인증 해시 발급
  3. changePasswordBySMSAuth로 비밀번호 변경
방법 2: 이메일 인증
  1. sendPasswordResetEmail로 이메일 발송
  2. 이메일에서 인증 링크 클릭
  3. changePasswordByEmailAuth로 비밀번호 변경

관련 API