Update Employee Photograph
บันทึก อัปเดต หรือลบรูปโปรไฟล์ของพนักงาน ผ่าน action save-photograph ของ Update Employee Setting
ใช้ API นี้เพื่ออัปเดตรูปโปรไฟล์พนักงาน (ผ่าน Base64 string หรือ File upload) หรือลบรูปโปรไฟล์ออก โดยเป็น action ย่อยของ Update Employee Setting
Endpoint
POST /api/v1/open-apis/employee/update-employee-setting?path_action=save-photographสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลพนักงานพื้นฐาน (employee:read:basic)
path_action รับได้ทั้ง save-photograph และ photograph (ให้ผลเหมือนกัน)
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
path_action | string | Yes | ต้องเป็น save-photograph หรือ photograph |
Request Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_code | string | Yes | รหัสพนักงาน | EMP001 |
ฟิลด์รูปภาพ (Image Input)
ระบุอย่างน้อยหนึ่งช่องทางเมื่อต้องการอัปเดตรูป:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
image_64 | string | Conditional | รูปภาพแบบ Base64 string (ส่งได้ทั้งแบบมีหรือไม่มี prefix data:image/...;base64,) | data:image/png;base64,iVBOR... |
photograph_base64 | string | Conditional | Base64 string (alias ของ image_64) | iVBOR... |
photograph | file / string | Conditional | ไฟล์รูปภาพ (ส่งแบบ multipart/form-data) หรือ Base64 string | File upload |
ฟิลด์ลบรูปภาพ (Remove)
| Parameter | Type | Required | Description | Values |
|---|---|---|---|---|
remove_photograph | boolean / string | No | กำหนดเป็น true เพื่อลบรูปโปรไฟล์ออก (วิธีหลักที่แนะนำ) | true, "true", 1, "1" |
- ต้องระบุรูปภาพอย่างน้อยหนึ่งช่องทาง หรือ กำหนด
remove_photograph: true— อย่างใดอย่างหนึ่ง - ห้ามส่งพร้อมกัน: หากส่งทั้ง
remove_photograph: trueและรูปภาพมาในคำขอเดียวกัน จะได้รับ HTTP 400 - การลบรูป: ใช้
remove_photograph: trueเป็นวิธีหลัก (ยังรองรับการส่งimage_64: ""ค่าว่างแบบเดิมเพื่อความเข้ากันได้ย้อนหลัง) — แต่photograph: ""ใช้ลบรูปไม่ได้ - ชนิดไฟล์ที่รองรับ: JPG, PNG, GIF, WEBP (ระบบตรวจสอบว่าเป็นไฟล์รูปภาพจริงก่อนบันทึก)
Request Body Example
อัปเดตรูปด้วย Base64
{
"employee_code": "EMP001",
"image_64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
}ลบรูปโปรไฟล์
{
"employee_code": "EMP001",
"remove_photograph": true
}กรณีอัปโหลดเป็นไฟล์ ให้ส่งแบบ multipart/form-data โดยใช้ฟิลด์ photograph (พร้อม employee_code) แทน JSON body
Response Format
Success Response - Update (HTTP 200)
{
"code": 200,
"message": "Save Employee Photograph Success",
"payload": {
"employee_code": "EMP001",
"photograph": "images/employees/emp0001.jpg"
}
}Success Response - Remove (HTTP 200)
{
"code": 200,
"message": "Remove Employee Photograph Success",
"payload": {
"employee_code": "EMP001",
"photograph": ""
}
}Error Response - Conflict Parameter (HTTP 400)
{
"code": 400,
"message": "Validation failed",
"errors": [
"Conflict parameter: Cannot specify both 'remove_photograph' and image content at the same time"
]
}สาเหตุ: ส่งทั้ง remove_photograph: true และรูปภาพ (Base64 หรือ File) มาพร้อมกัน
Error Response - Missing Input (HTTP 400)
{
"code": 400,
"message": "Validation failed",
"errors": [
"Missing image input: Please provide 'image_64' (Base64 string), 'photograph' (File upload), or set 'remove_photograph': true to delete"
]
}สาเหตุ: ไม่ได้ส่ง employee_code (Missing required parameter: 'employee_code') หรือไม่ได้ส่งรูปภาพและไม่ได้ตั้ง remove_photograph: true
Error Response - Invalid Image (HTTP 400)
{
"code": 400,
"message": "Validation failed",
"errors": [
"Invalid image format. Allowed formats: JPG, PNG, GIF, WEBP"
]
}สาเหตุ: ไฟล์หรือ Base64 ที่ส่งมาไม่ใช่รูปภาพจริง หรือเป็นชนิดที่ไม่รองรับ (Base64 ที่ผิดรูปแบบจะได้ Invalid Base64 string format)
Error Response - Employee Not Found (HTTP 400)
{
"code": 400,
"message": "Employee not found with code: EMP999"
}สาเหตุ: employee_code ที่ส่งมาไม่มีอยู่ในระบบ
Response Fields
| Field | Type | Description |
|---|---|---|
code | number | รหัสสถานะ HTTP |
message | string | ข้อความตอบกลับ (Save Employee Photograph Success หรือ Remove Employee Photograph Success) |
payload.employee_code | string | รหัสพนักงาน |
payload.photograph | string | URL รูปโปรไฟล์ที่บันทึก หรือค่าว่าง "" เมื่อเป็นการลบรูป |
Code Examples
cURL
# อัปเดตรูปด้วย Base64 (JSON body)
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/update-employee-setting?path_action=save-photograph" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"employee_code": "EMP001",
"image_64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg=="
}'
# อัปเดตรูปด้วยไฟล์ (multipart/form-data)
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/update-employee-setting?path_action=save-photograph" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-F "employee_code=EMP001" \
-F "photograph=@/path/to/profile.png"
# ลบรูปโปรไฟล์
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/update-employee-setting?path_action=save-photograph" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"employee_code": "EMP001",
"remove_photograph": true
}'Validation Rules
| เงื่อนไข | ผลลัพธ์ |
|---|---|
ไม่ส่ง employee_code หรือค่าว่าง | Missing required parameter: 'employee_code' |
ส่งทั้ง remove_photograph: true และรูปภาพพร้อมกัน | Conflict parameter: Cannot specify both 'remove_photograph' and image content at the same time |
ไม่ส่งรูปภาพ และไม่ได้ตั้ง remove_photograph: true | Missing image input: ... |
| ไฟล์/Base64 ไม่ใช่รูปภาพจริงหรือชนิดไม่รองรับ | Invalid image format. Allowed formats: JPG, PNG, GIF, WEBP |
remove_photograph: true หรือ image_64: "" | ลบรูปโปรไฟล์ (คืน photograph เป็น "") |
Notes
- รองรับทั้งการอัปเดตและลบรูปโปรไฟล์ผ่าน endpoint เดียวกัน
- ใช้
employee_code(เช่นEMP001) เป็นตัวระบุพนักงาน - ชนิดไฟล์ที่รองรับ: JPG, PNG, GIF, WEBP — Base64 ส่งได้ทั้งแบบมีและไม่มี prefix
data:image/...;base64, - เมื่ออัปเดตหรือลบรูปสำเร็จ ระบบจะซิงค์รูปโปรไฟล์ไปยังรายการผู้อนุมัติที่พนักงานคนนี้เป็นผู้อนุมัติ และบัญชีผู้ใช้ที่เชื่อมโยง พร้อมรีเฟรชข้อมูลที่แสดงผลให้อัตโนมัติ
Related APIs
- Update Basic Info - บันทึกข้อมูลการตั้งค่าพื้นฐาน
- Update Approver - บันทึกผู้อนุมัติของพนักงาน
- Update Employee Setting - Router หลักของการตั้งค่าพนักงาน (รวม action นี้)
- Get Employee Info - ดึงข้อมูลพนักงานรวมรูปโปรไฟล์