All files Forums.js

100% Statements 24/24
100% Branches 17/17
100% Functions 13/13
100% Lines 24/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 12x 12x 1x 1x 1x 1x 1x 1x 1x 1x 6x 6x 6x 6x 6x 6x 6x 6x 6x 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`),
        };
    }
}