All files / src/api/v1 Forums.js

62.5% Statements 15/24
75% Branches 3/4
37.5% Functions 3/8
62.5% Lines 15/24

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 251x 1x 1x 1x 30x 30x 1x 1x 1x 1x 1x 1x 1x 1x                   1x  
export default class Forums {
    #client;
 
    constructor(client) {
        this.#client = client;
    }
 
    get(id = null)  { return id ? this.#client.get(`/forums/${id}`) : this.#client.get('/forums'); }
    create(data)    { return this.#client.put('/forums', data); }
    edit(id, data)  { return this.#client.patch(`/forums/${id}`, data); }
    delete(id)      { return this.#client.del(`/forums/${id}`); }
    approve(id)     { return this.#client.post(`/forums/${id}/approve`); }
 
    responses(forumId) {
        const base = `/forums/${forumId}/responses`;
        return {
            get:     (id = null) => id ? this.#client.get(`${base}/${id}`) : this.#client.get(base),
            create:  (data)      => this.#client.put(base, data),
            edit:    (id, data)  => this.#client.patch(`${base}/${id}`, data),
            delete:  (id)        => this.#client.del(`${base}/${id}`),
            approve: (id)        => this.#client.post(`${base}/${id}/approve`),
        };
    }
}