import { processRules } from '../common'
import { requestAPI } from './common'
import rules from './rules'
/**
* 이미지 정보
* @alias ImageInfos
* @typedef ImageInfos
* @property {Object} original
* @property {String} original.url 이미지 Full URL
* @property {Number} original.length 이미지 사이즈, 단위: Byte
* @property {String} original.content_type 이미지 포맷
* @property {Number} original.width 이미지 가로 크기
* @property {Number} original.height 이미지 세로 크기
* @memberof Kakao.Link
*/
/**
* 카카오링크에 필요한 이미지를 업로드 합니다. (이미지는 20일 동안 보관됩니다.)
* @function uploadImage
* @param {Object} settings 카카오링크 이미지와 관련된 설정을 key/value로 전달합니다.
* @param {FileList} settings.file HTMLInputElement의 files property
* @return {Promise<ImageInfos>}
* @memberof Kakao.Link
*/
export function uploadImage(settings) {
settings = processRules(settings, rules.uploadImage, 'Link.uploadImage')
return requestAPI('/v2/api/talk/message/image/upload', {
file: settings.file,
})
}
/**
* 삭제할 이미지의 경로를 전달하면 이미지를 삭제할 수 있습니다.
* @function deleteImage
* @param {Object} settings 카카오링크 이미지와 관련된 설정을 key/value로 전달합니다.
* @param {String} settings.imageUrl 삭제할 이미지 URL
* @return {Promise}
* @memberof Kakao.Link
*/
export function deleteImage(settings) {
settings = processRules(settings, rules.deleteImage, 'Link.deleteImage')
return requestAPI('/v2/api/talk/message/image/delete', {
image_url: settings.imageUrl,
})
}
/**
* 스크랩 하고 싶은 이미지의 경로를 전달하면 스크랩 후 업로드 합니다. (이미지는 20일 동안 보관됩니다.)
* @function scrapImage
* @param {Object} settings 카카오링크 이미지와 관련된 설정을 key/value로 전달합니다.
* @param {String} settings.imageUrl 스크랩할 이미지 URL
* @return {Promise<ImageInfos>}
* @memberof Kakao.Link
*/
export function scrapImage(settings) {
settings = processRules(settings, rules.scrapImage, 'Link.scrapImage')
return requestAPI('/v2/api/talk/message/image/scrap', {
image_url: settings.imageUrl,
})
}