import axios from 'axios';
export async function getProjects(params) {
const redmineApiKey = params.REDMINE_API_KEY;
const redmineUrl = params.REDMINE_URL;
try {
const url = `${redmineUrl}/projects.json`;
console.log(`Fetching projects from ${url}`);
const response = await axios.get(url, {
headers: {
'X-Redmine-API-Key': redmineApiKey,
'Accept': 'application/json'
}
});
return response.data.projects;
} catch (error) {
console.error(error);
}
}
// statusを指定してチケットを取得する
export async function getTicketsByStatus(params, statusId) {
const redmineApiKey = params.REDMINE_API_KEY;
const redmineUrl = params.REDMINE_URL;
const projectId = params.PROJECT_ID;
try {
const url = `${redmineUrl}/issues.json?project_id=${projectId}&status_id=${statusId}`;
console.log(`Fetching tickets from ${url}`);
const response = await axios.get(url, {
headers: {
'X-Redmine-API-Key': redmineApiKey,
'Accept': 'application/json'
}
});
return response.data.issues;
} catch (error) {
console.error(error);
}
}
export async function getTickets(params) {
const redmineApiKey = params.REDMINE_API_KEY;
const redmineUrl = params.REDMINE_URL;
const projectId = params.PROJECT_ID;
try {
const url = `${redmineUrl}/issues.json?project_id=${projectId}`;
console.log(`Fetching tickets from ${url}`);
const response = await axios.get(url, {
headers: {
'X-Redmine-API-Key': redmineApiKey,
'Accept': 'application/json'
}
});
return response.data.issues;
} catch (error) {
console.error(error);
}
}
export async function addCommentToTicket(params, ticketId, comment) {
const redmineApiKey = params.REDMINE_API_KEY;
const redmineUrl = params.REDMINE_URL;
try {
const url = `${redmineUrl}/issues/${ticketId}.json`;
console.log(`Adding comment to ticket at ${url}`);
const response = await axios.put(url, {
issue: {
notes: comment,
status_id: 3
}
}, {
headers: {
'X-Redmine-API-Key': redmineApiKey,
'Content-Type': 'application/json'
}
});
return response.data;
} catch (error) {
console.error(error);
}
}