Skip to content
This repository was archived by the owner on Aug 4, 2022. It is now read-only.

API Reference

QiuHaohao edited this page Nov 14, 2018 · 43 revisions

What does 0, 50, 100 mean?

0 - Negative, 50 - Neutral, 100 - Positive

Sign up

POST /api/users/signup

Parameters

name type
email string

Responses

name type
status_code integer
error_message ?string

What to check: email has not been registered yet

Activation link: replace @ with &, replace . with !.

e.g. https://ntuvibe.com/users/activate/97fhvsudb93vbuiewvb9winck/lium0029&e!ntu!edu!sg

Check activation link

GET /api/users/check_activation_link

Parameter

name type
token string
email string

Response

name type
status_code integer
error_message ?string

What to check: username should be unique; token and email should be valid

Activate account

POST /api/users/activate

Parameter

name type
token string
email string
username string
password string
major string

Response

name type
status_code integer
error_message ?string

What to check: username should be unique; token and email should be valid

Request Password Reset

POST /api/users/request_password_reset

Parameters

name type
email string

Responses

name type
status_code integer
error_message ?string

What to check: email is already registered.

Password reset link: replace @ with &, replace . with !.

e.g. https://ntuvibe.com/users/request_password_reset/97fhvsudb93vbuiewvb9winck/lium0029&e!ntu!edu!sg

Check password reset link

GET /api/users/check_reset_password_link

Parameter

name type
token string
email string

Response

name type
status_code integer
error_message ?string

What to check: token and email should be valid

Reset password

POST /api/users/activate

Parameter

name type
token string
email string
password string

Response

name type
status_code integer
error_message ?string

What to check: token and email should be valid

Login

POST /api/users/login

name type
email string
password string

Responses

name type
status_code integer
error_message ?string

Logout

POST /api/users/logout

Token clear, redirect

Get user profile

GET /api/users/get_user_profile

No parameter.

Responses

name type
status_code integer
error_message ?string
data ?object
data: {
  id: integer,
  username: string
  email: string,
  major: string,
  avatar: string,
}

Use a default avatar for first sign up.

Return data: null if not logged in.

Get user schedule

GET /api/users/get_user_schedule

No parameter.

Responses

name type
status_code integer
error_message ?string
data ?string
data: "whatever stored there, return as a string"

Update user schedule

POST /api/users/update_user_schedule

name type
schedule string

Responses

name type
status_code integer
error_message ?string

Require logged in.

Update user profile

POST /api/users/update_user_profile

Parameter

name type
username string
major string
avatar string

Responses

name type
status_code integer
error_message ?string

Update if the user is logged in.

What to check: duplicate username

Search for courses

GET /api/courses/get_course_list

e.g. /api/courses/get_course_list

Responses

name type
status_code integer
error_message ?string
data array
data: [
  {
    code: "CZ2007",
    title: "INTRODUCTION TO DATABASES"
  },
  {
    code: "CZ2006",
    title: "SOFTWARE ENGINEERING"
  },
  {
    code: "CZ2001",
    title: "ALGORITHMS
  }
...  // sort them
]

Get course detail

GET /api/courses/get_course_detail

e.g. /api/courses/get_course_detail?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data object
data: {
  title: string,
  au: string,
  description: string,
  constraint: {
    prerequisite: string[],
    mutex: ?string,
  },
  as_ue: boolean,
  as_pe: boolean,
  pe_type: string[],
  grade_type: 0 | 1,
  offered_semester: string[],
  update_time: timestamp
}

Get course rating

GET /api/courses/get_course_rating

e.g. /api/courses/get_course_rating?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data object
data: {
  count: integer,
  like: integer,
  useful: integer,
  easy: integer
}

Get schedule

GET /api/courses/get_class_schedule

e.g. /api/courses/get_class_schedule?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data ?object

Note: if no course schedule, return data: null.

data: {
  update_time: timestamp,
  [index]: [
    {
      type: string,
      group: string,
      day: 1|2|3|4|5|6,
      start_time: string (12:30 hh:mm),
      end_time: string (19:30 hh:mm),
      venue: string,
      weeks: integer[] (-1 stands for online course)
    }, {
    ...
  ],
  ...
}

Get course vacancy

GET /api/courses/get_course_vacancy

e.g. /api/courses/get_course_vacancy?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data object

Note: if no exam schedule, return data: {}.

data: {
  [index]: {
    vacancy: integer,
    waitlist: integer
  },
  ...
}

Get exam schedule

GET /api/courses/get_exam_schedule

e.g. /api/courses/get_exam_schedule?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data ?object

Note: if no exam schedule, return data: null.

data: {
  start_time: timestamp,
  end_time: timestamp,
  update_time
}

Get course comments

GET /api/courses/get_course_comments

e.g. /api/courses/get_course_comments?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data object
data: {
  comments: [
    {
      userid: number,
      username: string,
      major: string,
      avatar: string,
      easy: 0|50|100,
      useful: 0|50|100,
      like: 0|50|100,
      comment_date: timestamp,
      comment_content: string (required)
    },
    ...
  ]
}

Get course comment for current logged in user

GET /api/courses/get_user_course_comment

e.g. /api/courses/get_user_course_comment?code=CZ2007

Parameters

name type
code string

Responses

name type
status_code integer
error_message ?string
data object
data: {
  comments: [
    {
      userid: number,
      username: string,
      major: string,
      avatar: string,
      easy: 0|50|100,
      useful: 0|50|100,
      like: 0|50|100,
      comment_date: timestamp,
      comment_content: string (required)
    },
    ...
  ]
}

Submit course rating

POST /api/courses/submit_course_rating

Parameters

name type
code string
like 0|50|100
easy 0|50|100
useful 0|50|100
comment string

Responses

name type
status_code integer
error_message ?string
Clone this wiki locally