diff --git a/js/api.js b/js/api.js index f12b73b..7d7b788 100644 --- a/js/api.js +++ b/js/api.js @@ -28,7 +28,7 @@ async function login(username, password) { let result = await fetch(`${prefix}/api/login`, { method: "POST", body: JSON.stringify({ "username": username, "password": password }), - credentials: "include" + credentials: "same-origin" }); switch (result.status) { case 200: @@ -79,6 +79,22 @@ async function search(q) { throw unknownResponse(result); } } +async function getArticle(id) { + let query = [["id", id]]; + let result = await fetch(`${prefix}/api/article?${buildQuery(query)}`, { + method: "GET" + }); + switch (result.status) { + case 200: + return await result.json(); + case 401: + throw new Error("Not authorized"); + case 404: + throw new Error("Article not found"); + default: + throw await unknownResponse(result); + } +} async function uploadArticle(payload) { let result = await fetch(`${prefix}/api/article`, { method: "POST", diff --git a/js/api.js.map b/js/api.js.map index 0947cd0..b81e994 100644 --- a/js/api.js.map +++ b/js/api.js.map @@ -1 +1 @@ -{"version":3,"file":"api.js","sourceRoot":"","sources":["api.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"api.js","sourceRoot":"","sources":["api.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAGxF,KAAK,UAAU,eAAe,CAAC,IAAc;IACzC,IAAI,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI;QACA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC3B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;KAC1D;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,IAAI,KAAK,CAAC,8BAA8B,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;KAC1E;AACL,CAAC;AAED,SAAS,UAAU,CAAC,OAAgB;IAChC,IAAI,KAAK,GAAa,EAAE,CAAA;IACxB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACtB,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1B,IAAI,OAAO,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;gBAC5B,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;aACvC;iBAAM,IAAI,OAAO,CAAC,CAAC,CAAC,YAAY,KAAK,EAAE;gBACpC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;aAC1C;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;SAC5C;IACL,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAC1B,CAAC;AA0BD,KAAK,UAAU,KAAK,CAAC,QAAgB,EAAE,QAAgB;IACnD,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,YAAY,EAAE;QAC5C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAC,CAAC;QAClE,WAAW,EAAE,aAAa;KAC7B,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAM;QACV,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACrD;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAa,EAAE,KAAc;IAChD,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAE9C,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,gBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACtE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE;QACtB,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;KAC7B;SAAM;QACH,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KACtC;AACL,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,IAAa,EAAE,KAAc;IAC7C,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAE9C,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,aAAa,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACnE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE;QACtB,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;KAC7B;SAAM;QACH,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KACtC;AACL,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAE9B,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,eAAe,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACrE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE;QACtB,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;KAC7B;SAAM;QACH,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KACtC;AACL,CAAC;AAWD,KAAK,UAAU,MAAM,CAAC,CAAc;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;IAE1H,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,eAAe,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACrE,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE;QACtB,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;KAC7B;SAAM;QACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAChC;AACL,CAAC;AAYD,KAAK,UAAU,UAAU,CAAC,EAAU;IAChC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;IAExB,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,gBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;QACnE,MAAM,EAAE,KAAK;KAChB,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC9B,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;QACxC;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAYD,KAAK,UAAU,aAAa,CAAC,OAA6B;IACtD,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAChC,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC9B,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACpE;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAaD,KAAK,UAAU,WAAW,CAAC,OAA2B;IAClD,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,EAAE;QAC9C,MAAM,EAAE,OAAO;QACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAChC,CAAC,CAAA;IACF,IAAI,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;IAE9B,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAO,IAAI,CAAA;QACf,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC7C,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;QACpE;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,EAAU;IACnC,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,cAAc,EAAE;QAC9C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;KACnC,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAM;QACV,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;QAC7C;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,IAAa,EAAE,QAAgB,EAAE;IACtD,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAE3C,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,eAAe,UAAU,CAAC,KAAK,CAAC,EAAE,EAAE;QAClE,MAAM,EAAE,KAAK;KAChB,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC9B,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,OAAe;IACjD,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,aAAa,EAAE;QAC7C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACjB,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,OAAO;SACrB,CAAC;KACL,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QAC9B,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;QACjE;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,EAAU;IACjC,IAAI,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,aAAa,EAAE;QAC7C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,CAAC;KACnC,CAAC,CAAA;IACF,QAAQ,MAAM,CAAC,MAAM,EAAE;QACnB,KAAK,GAAG;YACJ,OAAM;QACV,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrC,KAAK,GAAG;YACJ,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QAC3D;YACI,MAAM,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;KAC1C;AACL,CAAC"} \ No newline at end of file diff --git a/js/api.ts b/js/api.ts index 83ad271..46a573e 100644 --- a/js/api.ts +++ b/js/api.ts @@ -54,7 +54,7 @@ async function login(username: string, password: string): Promise { let result = await fetch(`${prefix}/api/login`, { method: "POST", body: JSON.stringify({"username": username, "password": password}), - credentials: "include" + credentials: "same-origin" }) switch (result.status) { case 200: @@ -119,6 +119,34 @@ async function search(q: SearchQuery): Promise { } } +interface ArticleGetPayload { + title: string, + summary: string, + authors: number[], + image: string, + tags: string[], + link: string + content: string +} + +async function getArticle(id: number): Promise { + let query = [["id", id]] + + let result = await fetch(`${prefix}/api/article?${buildQuery(query)}`, { + method: "GET" + }) + switch (result.status) { + case 200: + return await result.json() + case 401: + throw new Error("Not authorized") + case 404: + throw new Error("Article not found") + default: + throw await unknownResponse(result) + } +} + interface ArticleUploadPayload { title: string, summary: string,