rest.ts 870 B

1234567891011121314151617181920212223242526272829303132333435363738
  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. return $hydraParser.parse(response);
  22. } catch (err) {
  23. console.log(err)
  24. }
  25. }
  26. ctx.$rest = {
  27. 'getCollection': getCollection,
  28. 'getItem': getItem
  29. }
  30. }
  31. export default restPlugin