Update Course
Description
Update an existing course.
Authentication
- Required: No (Note: This endpoint doesn't require authentication based on the route configuration)
Request
Headers
PUT /v1/customer/course/:id
Authorization: Bearer <token>
Content-Type: application/json
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Course ID |
Request Body
{
"publicId": "COURSE001",
"name": "Advanced Programming",
"description": "An advanced course covering advanced programming concepts",
"imageUrl": "https://example.com/advanced-course-image.jpg",
"instructionVideoUrl": "https://example.com/advanced-instruction-video.mp4",
"price": 149.99,
"durationInHours": 60,
"sessionUnit": 12,
"parentId": 1
}
Field Descriptions
All fields are optional for updates:
publicId:
- Type: string
- Required: No
- Description: Unique public identifier for the course (1-25 characters)
name:
- Type: string
- Required: No
- Description: Course name (1-100 characters)
description:
- Type: string
- Required: No
- Description: Course description (1-3000 characters)
imageUrl:
- Type: string
- Required: No
- Description: Course image URL (6-250 characters)
instructionVideoUrl:
- Type: string
- Required: No
- Description: Instruction video URL (1-250 characters)
price:
- Type: number
- Required: No
- Description: Course price
durationInHours:
- Type: number
- Required: No
- Description: Course duration in hours
sessionUnit:
- Type: number
- Required: No
- Description: Number of sessions (minimum 1)
parentId:
- Type: number
- Required: No
- Description: Parent course ID for course hierarchy
Response
Success Response (200)
{
"data": {
"id": 1,
"publicId": "COURSE001",
"name": "Advanced Programming",
"description": "An advanced course covering advanced programming concepts",
"imageUrl": "https://example.com/advanced-course-image.jpg",
"instructionVideoUrl": "https://example.com/advanced-instruction-video.mp4",
"price": 149.99,
"durationInHours": 60,
"sessionUnit": 12,
"parentId": 1,
"customerId": 1,
"createdAt": "2024-01-01T00:00:00Z",
"updatedAt": "2024-01-01T00:00:00Z"
}
}
Error Responses
- 404: Course not found
- 422: Validation errors (see Error Response Format)
Error Codes
- E010_BAD_RESOURCE_NOT_EXISTS: Course not found
- E009_BAD_RESOURCE_EXISTS: Course with this publicId already exists
Example Usage
curl -X PUT https://api.stepx.io.vn/v1/customer/course/1 \
-H "Content-Type: application/json" \
-d '{
"name": "Advanced Programming",
"description": "An advanced course covering advanced programming concepts",
"price": 149.99,
"durationInHours": 60
}'
const response = await fetch('https://api.stepx.io.vn/v1/customer/course/1', {
method: 'PUT',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: 'Advanced Programming',
description: 'An advanced course covering advanced programming concepts',
price: 149.99,
durationInHours: 60
})
});
const data = await response.json();