rest.ts 898 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import {Plugin} from '@nuxt/types'
  2. import HydraParser from '../../services/utils/hydraParser'
  3. import {AnyJson} from "~/types/types";
  4. declare module '@nuxt/types' {
  5. interface Context {
  6. $rest: AnyJson
  7. }
  8. }
  9. const restPlugin: Plugin = (ctx) => {
  10. const getCollection = async (uri: string) => {
  11. const responseQuery = await ctx.$http.get(`${uri}`);
  12. return await queries(responseQuery);
  13. }
  14. const getItem = async (uri: string, id: number) => {
  15. const query = await ctx.$http.get(`${uri}/${id}`);
  16. return await queries(query);
  17. }
  18. const queries = async (responseQuery: any) => {
  19. try {
  20. let response = await responseQuery.json();
  21. const hydra = new HydraParser();
  22. return hydra.parse(response);
  23. } catch (err) {
  24. console.log(err)
  25. }
  26. }
  27. ctx.$rest = {
  28. 'getCollection': getCollection,
  29. 'getItem': getItem
  30. }
  31. }
  32. export default restPlugin