dataDeleter.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import { DataDeleterArgs } from '~/types/interfaces'
  2. import BaseDataManager from '~/services/data/baseDataManager'
  3. import { repositoryHelper } from '~/services/store/repository'
  4. import { hooksDeleter } from '~/services/data/hooks/hookDeleter/_import'
  5. import UrlBuilder from '~/services/connection/urlBuilder'
  6. import { HTTP_METHOD } from '~/types/enums'
  7. import Connection from '~/services/connection/connection'
  8. /**
  9. * Le DataDeleter a pour rôle de supprimer des enregistrements via l'API
  10. */
  11. class DataDeleter extends BaseDataManager {
  12. protected hooks = hooksDeleter;
  13. /**
  14. * Exécute la requête
  15. * @param {DataDeleterArgs} queryArguments
  16. */
  17. protected async _invoke (queryArguments: DataDeleterArgs): Promise<any> {
  18. // build the url according to the url args
  19. const url = UrlBuilder.build(queryArguments)
  20. // send the DELETE request to the api
  21. await Connection.invoke(HTTP_METHOD.DELETE, url, queryArguments)
  22. // update the store
  23. if (queryArguments.model) {
  24. await repositoryHelper.deleteItem(queryArguments.model, queryArguments.id)
  25. }
  26. }
  27. }
  28. export default DataDeleter