HEX
Server: LiteSpeed
System: Linux standart113.isimtescil.net 4.18.0-553.132.1.lve.el8.x86_64 #1 SMP Wed Jun 17 12:00:40 UTC 2026 x86_64
User: guvercin.org.tr_ (1560)
PHP: 8.1.34
Disabled: dl,exec,shell_exec,system,passthru,popen,pclose,proc_open,mail,proc_nice,proc_terminate,proc_get_status,proc_close,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,escapeshellcmd,escapeshellarg,shell-exec,crack_check,crack_closedict,crack_getlastmessage,crack_opendict,symlink,ini_restore,posix_getpwuid,ini_sefind,grep,sh2_exec,diskfreespace,disk_free_space,disk_total_space,highlight_file,link,lchgrp,lchown,show_source,sendmail
Upload Files
File: /home/guvercin.org.tr_/public_html/wp-content/plugins/code-snippets/js/hooks/useImportersAPI.ts
import { useMemo } from 'react'
import { useAxios } from './useAxios'
import type { AxiosResponse, CreateAxiosDefaults } from 'axios'

export interface Importer {
	name: string
	title: string
	is_active: boolean
}

export interface ImportableSnippet {
	id: number
	title: string
	table_data: {
		id: number
		title: string
	}
}

export interface ImportRequest {
	ids: number[]
	network?: boolean
	auto_add_tags?: boolean
	tag_value?: string
}

export interface ImportResponse {
	imported: number[]
}

const ROUTE_BASE = `${window.CODE_SNIPPETS?.restAPI.base}code-snippets/v1/`

const AXIOS_CONFIG: CreateAxiosDefaults = {
	headers: { 'X-WP-Nonce': window.CODE_SNIPPETS?.restAPI.nonce }
}

export interface ImportersAPI {
	fetchAll: () => Promise<AxiosResponse<Importer[]>>
	fetchSnippets: (importerName: string) => Promise<AxiosResponse<ImportableSnippet[]>>
	importSnippets: (importerName: string, request: ImportRequest) => Promise<AxiosResponse<ImportResponse>>
}

export const useImportersAPI = (): ImportersAPI => {
	const { get, post } = useAxios(AXIOS_CONFIG)

	return useMemo((): ImportersAPI => ({
		fetchAll: () => get<Importer[]>(`${ROUTE_BASE}importers`),
		fetchSnippets: (importerName: string) => get<ImportableSnippet[]>(`${ROUTE_BASE}${importerName}`),
		importSnippets: (importerName: string, request: ImportRequest) => 
			post<ImportResponse, ImportRequest>(`${ROUTE_BASE}${importerName}/import`, request)
	}), [get, post])
}