Skip to Content
🚀 Welcome to Humansoft Open API Documentation

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

ParameterTypeRequiredDescription
path_actionstringYesต้องเป็น save-photograph หรือ photograph

Request Parameters

ParameterTypeRequiredDescriptionExample
employee_codestringYesรหัสพนักงานEMP001

ฟิลด์รูปภาพ (Image Input)

ระบุอย่างน้อยหนึ่งช่องทางเมื่อต้องการอัปเดตรูป:

ParameterTypeRequiredDescriptionExample
image_64stringConditionalรูปภาพแบบ Base64 string (ส่งได้ทั้งแบบมีหรือไม่มี prefix data:image/...;base64,)data:image/png;base64,iVBOR...
photograph_base64stringConditionalBase64 string (alias ของ image_64)iVBOR...
photographfile / stringConditionalไฟล์รูปภาพ (ส่งแบบ multipart/form-data) หรือ Base64 stringFile upload

ฟิลด์ลบรูปภาพ (Remove)

ParameterTypeRequiredDescriptionValues
remove_photographboolean / stringNoกำหนดเป็น 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

FieldTypeDescription
codenumberรหัสสถานะ HTTP
messagestringข้อความตอบกลับ (Save Employee Photograph Success หรือ Remove Employee Photograph Success)
payload.employee_codestringรหัสพนักงาน
payload.photographstringURL รูปโปรไฟล์ที่บันทึก หรือค่าว่าง "" เมื่อเป็นการลบรูป

Code Examples

# อัปเดตรูปด้วย 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: trueMissing 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,
  • เมื่ออัปเดตหรือลบรูปสำเร็จ ระบบจะซิงค์รูปโปรไฟล์ไปยังรายการผู้อนุมัติที่พนักงานคนนี้เป็นผู้อนุมัติ และบัญชีผู้ใช้ที่เชื่อมโยง พร้อมรีเฟรชข้อมูลที่แสดงผลให้อัตโนมัติ
  • Update Basic Info - บันทึกข้อมูลการตั้งค่าพื้นฐาน
  • Update Approver - บันทึกผู้อนุมัติของพนักงาน
  • Update Employee Setting - Router หลักของการตั้งค่าพนักงาน (รวม action นี้)
  • Get Employee Info - ดึงข้อมูลพนักงานรวมรูปโปรไฟล์
Last updated on