todite
Version:
Connect your application to Todite, a free to-do list app
2 lines • 3.12 kB
JavaScript
var e,t,r=this&&this.__awaiter||function(e,t,r,o){return new(r||(r=Promise))((function(i,n){function a(e){try{s(o.next(e))}catch(e){n(e)}}function d(e){try{s(o.throw(e))}catch(e){n(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,d)}s((o=o.apply(e,t||[])).next())}))},o=this&&this.__classPrivateFieldSet||function(e,t,r){if(!t.has(e))throw new TypeError("attempted to set private field on non-instance");return t.set(e,r),r},i=this&&this.__classPrivateFieldGet||function(e,t){if(!t.has(e))throw new TypeError("attempted to get private field on non-instance");return t.get(e)};const n=require("node-fetch");module.exports=(t=class{constructor(t){if(e.set(this,void 0),this.apiKeyRegex=/^[0-9a-z]{8}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{4}-[0-9a-z]{12}$/,o(this,e,t),!this.apiKeyRegex.test(t))throw new Error("Invalid API Key");n.default(`https://todite.vercel.app/api/v1/user?api_key=${i(this,e)}`).then((e=>e.json())).then((e=>{if(e.error)throw new Error(e.error.message)}))}create({name:t,completed:o,date:a}){return r(this,void 0,void 0,(function*(){const r=yield n.default(`https://todite.vercel.app/api/v1/todos?api_key=${i(this,e)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,completed:o,date:a})}).then((e=>e.json()));if(r.error)throw new Error(r.error.message);return r.date&&(r.date=new Date(r.date)),{_id:r._id,name:r.name,completed:r.completed,user:r.user,date:r.date}}))}getAll(){return r(this,void 0,void 0,(function*(){const t=yield n.default(`https://todite.vercel.app/api/v1/todos?api_key=${i(this,e)}`).then((e=>e.json()));if(t.error)throw new Error(t.error.message);return t.forEach((e=>{e.date&&(e.date=new Date(e.date))})),t.map((e=>({_id:e._id,name:e.name,completed:e.completed,user:e.user,date:e.date})))}))}get(t){return r(this,void 0,void 0,(function*(){const r=yield n.default(`https://todite.vercel.app/api/v1/todo/${t}?api_key=${i(this,e)}`).then((e=>e.json()));if(r.error){if(404===r.error.status)return null;throw new Error(r.error.message)}return r.date&&(r.date=new Date(r.date)),{_id:r._id,name:r.name,completed:r.completed,user:r.user,date:r.date}}))}update(t,o,a,d){return r(this,void 0,void 0,(function*(){let r;if("string"==typeof t)r=t;else{if(!t.id&&!t._id)throw new Error("id must be passed in as an argument");r=t.id||t._id,o||(o=t.name),a||(a=t.completed),d||(d=t.date)}const s=yield n.default(`https://todite.vercel.app/api/v1/todo/${r}?api_key=${i(this,e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:o,completed:a,date:d})}).then((e=>e.json()));if(s.error)throw new Error(s.error.message);return s.date&&(s.date=new Date(s.date)),{_id:s._id,name:s.name,completed:s.completed,user:s.user,date:s.date}}))}delete(t){var o;return r(this,void 0,void 0,(function*(){const r=yield n.default(`https://todite.vercel.app/api/v1/todo/${t}?api_key=${i(this,e)}`,{method:"DELETE"}).then((e=>e.json()));if(!r.success)throw new Error(null===(o=r.error)||void 0===o?void 0:o.message)}))}},e=new WeakMap,t);
//# sourceMappingURL=index.min.js.map
;