export default { name: 'ListNewsletter', data() { return { newsletters: [] } }, methods: { async openModal() { try { this.dtClear() await this.submitApi(); $('#modalNewsletterList').modal('show'); this.dtRebuild() showSuccessInfo("Newsletters fetched") } catch (err) { showErrorInfo(err) } }, dtClear() { $('#account_newsletters_table').DataTable().destroy(); }, dtRebuild() { $('#account_newsletters_table').DataTable({ "pageLength": 100, "reloadData": true, }).draw(); }, async handleUnfollowNewsletter(newsletter_id) { try { const ok = confirm("Are you sure to leave this newsletter?"); if (!ok) return; await this.unfollowNewsletterApi(newsletter_id); this.dtClear() await this.submitApi(); this.dtRebuild() showSuccessInfo("Success unfollow newsletter") } catch (err) { showErrorInfo(err) } }, async unfollowNewsletterApi(newsletter_id) { try { let payload = new FormData(); payload.append("newsletter_id", newsletter_id) await window.http.post(`/newsletter/unfollow`, payload) } catch (error) { if (error.response) { throw new Error(error.response.data.message); } throw new Error(error.message); } }, async submitApi() { try { let response = await window.http.get(`/user/my/newsletters`) this.newsletters = response.data.results.data; } catch (error) { if (error.response) { throw new Error(error.response.data.message); } throw new Error(error.message); } }, formatDate: function (value) { if (!value) return '' return moment.unix(value).format('LLL'); } }, template: `
Newsletter
List Newsletters
Display all your newsletters
` }