Skip to main content

KnowledgeBaseApi

Struct KnowledgeBaseApi 

Source
pub struct KnowledgeBaseApi<'a> { /* private fields */ }
Expand description

Knowledge Base (FAQ) endpoints.

Implementations§

Source§

impl<'a> KnowledgeBaseApi<'a>

Source

pub async fn list(&self) -> Result<Vec<KbAnswer>>

List every answer known to the instance, flattened to KbAnswers (title + category, no body).

POST /api/v1/knowledge_bases/init.

Source

pub async fn get(&self, answer_id: u64) -> Result<KbAnswer>

Fetch a single answer by its numeric id, including its full body.

Returns Error::NotFound when no answer with that id exists.

Issues two POST /api/v1/knowledge_bases/init calls: one for the structure and one that requests the answer’s translation content.

Source

pub async fn list_knowledge_bases(&self) -> Result<Vec<KbInfo>>

Every knowledge base on the instance (from the init bundle).

POST /api/v1/knowledge_bases/init.

Source

pub async fn list_categories(&self) -> Result<Vec<KbCategory>>

Every category of every knowledge base (from the init bundle), sorted by id.

POST /api/v1/knowledge_bases/init.

Source

pub async fn get_category(&self, category_id: u64) -> Result<KbCategory>

Fetch a single category by its numeric id.

Returns Error::NotFound when no category with that id exists.

POST /api/v1/knowledge_bases/init.

Source

pub async fn create_category( &self, kb_id: u64, category: NewKbCategory, ) -> Result<KbCategory>

Create a category in the given knowledge base (primary locale).

kb_id is explicit because a new category cannot be resolved from init. Returns Error::NotFound when the kb_id is unknown and Error::Config when the KB has no locale.

POST /api/v1/knowledge_bases/:kb_id/categories.

Source

pub async fn update_category( &self, category_id: u64, patch: KbCategoryPatch, ) -> Result<KbCategory>

Partial update; kb_id resolved from the category via init.

An all-None patch skips the HTTP call and returns the current state. Returns Error::NotFound when no category with that id exists.

PATCH /api/v1/knowledge_bases/:kb_id/categories/:id.

Source

pub async fn delete_category(&self, category_id: u64) -> Result<()>

Delete a category.

Zammad refuses (422) when the category still has answers or child categories; that surfaces as Error::Api.

DELETE /api/v1/knowledge_bases/:kb_id/categories/:id.

Source

pub async fn create_answer(&self, answer: NewKbAnswer) -> Result<KbAnswer>

Create a new answer in a category, in the knowledge base’s primary locale.

When NewKbAnswer::published is true a second POST .../answers/:id/publish call makes it public right away; otherwise it is left as a draft. The knowledge base and locale are resolved from the category.

POST /api/v1/knowledge_bases/:kb_id/answers.

Source

pub async fn update_answer( &self, answer_id: u64, patch: KbAnswerPatch, ) -> Result<KbAnswer>

Update an existing answer’s title, body, and/or published state. Fields left as None in the KbAnswerPatch are preserved.

Returns Error::NotFound when no answer with that id exists.

PATCH /api/v1/knowledge_bases/:kb_id/answers/:id.

Source

pub async fn delete_answer(&self, answer_id: u64) -> Result<()>

Delete an answer.

The knowledge base is resolved answer → category → kb.

DELETE /api/v1/knowledge_bases/:kb_id/answers/:id.

Source

pub fn search(&self, query: impl Into<String>) -> SearchKnowledgeBase<'a>

Full-text search across the Knowledge Base.

Returns a builder; call SearchKnowledgeBase::send to run it.

Trait Implementations§

Source§

impl<'a> Debug for KnowledgeBaseApi<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for KnowledgeBaseApi<'a>

§

impl<'a> !UnwindSafe for KnowledgeBaseApi<'a>

§

impl<'a> Freeze for KnowledgeBaseApi<'a>

§

impl<'a> Send for KnowledgeBaseApi<'a>

§

impl<'a> Sync for KnowledgeBaseApi<'a>

§

impl<'a> Unpin for KnowledgeBaseApi<'a>

§

impl<'a> UnsafeUnpin for KnowledgeBaseApi<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more