Skip to content

API Reference: Interviews

hanjiexi edited this page Jun 5, 2021 · 1 revision

Interviews

Resource

The interview resource represents a full life-cycle of any given interview, for the initial interview request to after the interview is complete. Each interview has a unique primaryUser, secondaryUser and startTime.

interface Interview {
   id: uuid;
   status: InterviewStatus;
   primaryUserId: uuid; // Represents inviter
   secondaryUserId: uuid; // Represents invitee
   startTime: string; // ISO DateTime string in UTC (on the hour)
   isConfirmed: boolean; 
   languages: CodingLanguage[] // Represents matched coding languages between the users
   questions: InterviewQuestion[];
   questionDifficulties: QuestionDifficulty[];
   questionTypes: QuestionType[];
   code: string;
}
// TODO: Other requirements for WebRTC, etc.

InterviewDetail

interface InterviewDetail extends Interview {
   primaryUser: InterviewUser;
}

InterviewStatus

enum InterviewStatus {
   INVITED, CONFIRMED, COMPLETED, CANCELLED
}

Get Interview - GET /interviews/:interviewId

Used for interview session

Get Interviews - GET /interviews?status={STATUS}

Authenticated request with optional query param for status

GetInterviewResponse

interface GetInterviewResponse {
   interviewDetails: DetailedInterview[];
}

Create Interview - POST /interviews

  • Authenticated request
  • Returns the same response as GetInterviewResponse

CreateInterviewRequest

interface CreateInterviewRequest {
   availabilityId: uuid;
   secondaryUserId: uuid;
   startTime: string;
}

CreateInterviewResponse

interface CreateInterviewResponse {
   interviewDetails: DetailedInterview[];
}

Confirm/Reject Interview Request - PUT /interview/:interviewId

  • Authenticated request
  • Returns the same response as GetInterviewResponse

ConfirmInterviewRequest

interface ConfirmInterviewRequest {
   interviewId: uuid;
   isConfirmed: boolean;
}

ConfirmInterviewResponse

interface ConfirmInterviewResponse {
   interviewDetails: DetailedInterview[];
}