feat: jira config in database
This commit is contained in:
46
clients/jira-config-client.ts
Normal file
46
clients/jira-config-client.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import { httpClient } from './base/http-client';
|
||||
import { JiraConfig } from '@/lib/types';
|
||||
|
||||
export interface JiraConfigResponse {
|
||||
jiraConfig: JiraConfig;
|
||||
}
|
||||
|
||||
export interface SaveJiraConfigRequest {
|
||||
baseUrl: string;
|
||||
email: string;
|
||||
apiToken: string;
|
||||
}
|
||||
|
||||
export interface SaveJiraConfigResponse {
|
||||
success: boolean;
|
||||
message: string;
|
||||
jiraConfig: JiraConfig;
|
||||
}
|
||||
|
||||
class JiraConfigClient {
|
||||
private readonly basePath = '/user-preferences/jira-config';
|
||||
|
||||
/**
|
||||
* Récupère la configuration Jira actuelle
|
||||
*/
|
||||
async getJiraConfig(): Promise<JiraConfig> {
|
||||
const response = await httpClient.get<JiraConfigResponse>(this.basePath);
|
||||
return response.jiraConfig;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sauvegarde la configuration Jira
|
||||
*/
|
||||
async saveJiraConfig(config: SaveJiraConfigRequest): Promise<SaveJiraConfigResponse> {
|
||||
return httpClient.put<SaveJiraConfigResponse>(this.basePath, config);
|
||||
}
|
||||
|
||||
/**
|
||||
* Supprime la configuration Jira (remet à zéro)
|
||||
*/
|
||||
async deleteJiraConfig(): Promise<{ success: boolean; message: string }> {
|
||||
return httpClient.delete(this.basePath);
|
||||
}
|
||||
}
|
||||
|
||||
export const jiraConfigClient = new JiraConfigClient();
|
||||
Reference in New Issue
Block a user