import a from 'axios'; import { Attachment, BatchError, Board, Card, Column, Comment, GetAttachmentOptions, GetAllBoardOptions, GetBoardOptions, GetCardOptions, GetCommentOptions, GetUserOptions, Label, NewColumn, NewLabel, PageOptions, User} from './v1_types'; export default v1; function v1(token: string) { const axios = a.create({ baseURL: `https://gloapi.gitkraken.com/v1/`, headers: { 'Authorization': token } }); const defaultGetAllBoardOptions = { archived: false, page: 1, per_page: 50, sort: 'asc', fields: ['name'], }; const getAllBoards = async (options?: GetAllBoardOptions): Promise<[Board]> => { const mergedOptions = { ...defaultGetAllBoardOptions, ...options }; return ( await axios.get(`/glo/boards?page=${mergedOptions.page}&per_page=${mergedOptions.per_page}&archived=${mergedOptions.archived}&sort=${mergedOptions.sort}&fields=${mergedOptions.fields.join('%2C')}`) ).data; }; const boards = { getAll: getAllBoards, get: async (board_id: string, options?: GetBoardOptions): Promise => { return ( await axios.get(`/glo/boards/${board_id}?fields=${ ((options && options.fields) || ['name']).join('%2C')}` ) ).data; }, create: async (board_name: string): Promise => { return (await axios.post(`/glo/boards`, { name: board_name })).data; }, delete: async (board_id: string): Promise => { return (await axios.delete(`/glo/boards/${board_id}`)).data; }, labels: { create: async (board_id: string, label: NewLabel): Promise