{"version":3,"file":"global.js","mappings":"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","sources":["webpack://vue-mvc/./src/scripts/constants.js","webpack://vue-mvc/./src/scripts/notifications.js","webpack://vue-mvc/./src/scripts/services/leadsClient.js","webpack://vue-mvc/./src/scripts/services/procurementClient.js","webpack://vue-mvc/./src/scripts/services/carMatchUsedClient.js","webpack://vue-mvc/./src/scripts/services/servicesClient.js","webpack://vue-mvc/./src/scripts/services/alertsClient.js","webpack://vue-mvc/./src/global/index.js"],"sourcesContent":["\nexport let HTTP_METHOD_GET = \"GET\";\nexport let HTTP_METHOD_POST = \"POST\";\nexport let HTTP_METHOD_PUT = \"PUT\";\nexport let HTTP_METHOD_DELETE = \"DELETE\";\n\nexport let HTTP_HEADERS_JSON = { \"Accept\": \"application/json\", \"Content-Type\": \"application/json\" };\n\nexport let API_ENDPOINT_ADS = \"/api/vehicles-catalog\";\nexport let API_ENDPOINT_SERVICE_ADVERTS = \"/api/services/adverts\";\nexport let API_ENDPOINT_ADVERTISERLOCATIONS = \"/api/advertiserlocations\";\nexport let API_ENDPOINT_ADVERTISERS = \"/api/advertiser\";\nexport let API_ENDPOINT_PUBLISHER = \"/api/publisher\";\nexport let API_ENDPOINT_BALANCE = \"/api/balance\";\nexport let API_ENDPOINT_REFDATA = \"/api/refdata\";\nexport let API_ENDPOINT_AUTHORIZATIONAPPS = \"/api/authorizationApps\";\nexport let API_ENDPOINT_USERS = \"/api/advertiserusers\";\nexport let API_ENDPOINT_FILES = \"/api/files\";\nexport let API_ENDPOINT_LEADS = \"/api/leads\";\nexport let API_ENDPOINT_ALERTS = \"/api/alerts\";\nexport let API_ENDPOINT_HIGHLIGHTS = \"/api/highlights\";\nexport let API_ENDPOINT_PROCUREMENT = \"/api/procurement\";\nexport let API_ENDPOINT_SELLERS = \"/api/seller\";\nexport let API_ENDPOINT_STATS = \"/api/stats\";\nexport let API_ENDPOINT_IMAGES = \"/images\";\nexport let API_ENDPOINT_SERVICES = \"/api/services\";\nexport let API_ENDPOINT_SESSION_FILTERS = \"/api/sessions\";\n\nexport let SESSION_FILTER_KEY_ADS_SEARCH = \"ADS_SEARCH_FILTER\";\nexport let API_ENDPOINT_CARMATCHUSED = \"/api/carmatchused\";\n\nexport let SEARCH_PAGE_DEFAULT_SIZE = 12;\nexport let SEARCH_PAGE_DEFAULT_NUMBER = 1;\nexport let SEARCH_PAGE_DEFAULT_ORDER_BY = \"\";\n\nexport let LIST_ORDER_DIRECTION_ASC = \"ASC\";\nexport let LIST_ORDER_DIRECTION_DESC = \"DESC\";\n\nexport let NOTIFICATION_SUCCESS_MESSAGE_TIMEOUT = 3000;","\nexport default {\n Success(title, description, timeout) {\n GrowlNotification.notify({\n title: title || 'Sucesso',\n description: description || 'Operação executada com sucesso',\n type: 'success',\n position: 'top-right',\n closeTimeout: timeout || 1500, \n showProgress: true\n });\n },\n\n Warning(title, description) {\n GrowlNotification.notify({\n title: title || 'Atenção',\n description: description || 'Não foi possivel executar a operação',\n type: 'warning',\n position: 'top-right',\n closeTimeout: 10000,\n showProgress: true\n });\n },\n\n Error(title, description) {\n GrowlNotification.notify({\n title: title || 'Anómalia',\n description: description || 'Ocurreu uma anómalia ao executar a operação',\n type: 'error',\n position: 'top-right',\n closeTimeout: 10000,\n showProgress: true\n });\n },\n CloseAll() {\n GrowlNotification.closeAll();\n }\n}","import * as constants from \"../constants.js\";\nimport notifications from \"../notifications\"\n\nexport default {\n OnSuccess(description) {\n notifications.Success(\"Mensagens\", description);\n },\n\n OnError(resp, description) {\n notifications.Error(\"Mensagens\", description); \n },\n \n OnUnauthorized(){\n window.location = \"/\";\n },\n\n GetLeads: async function (size, num, orderDirection, searchTerm, status, filter, orderBy) {\n \n let reqUriParams = `orderDirection=${orderDirection}`;\n if (num != '') {\n reqUriParams += `&PageNum=${num}`;\n }\n if (size != '') {\n reqUriParams += `&PageSize=${size}`;\n }\n if (searchTerm !== '') {\n reqUriParams += `&Filter.SearchTerm=${encodeURI(searchTerm)}`;\n }\n if (orderBy != \"\" && orderBy != undefined) {\n reqUriParams += `&OrderBy=${orderBy}`;\n }\n if (filter != null) {\n if (filter.FilterBy != null) {\n reqUriParams += `&Filter.FilterBy=${filter.FilterBy}`;\n }\n var IdAppUser = new URL(location.href).searchParams.get(\"IdBuyer\")\n if (IdAppUser != null) {\n var type = new URL(location.href).searchParams.get(\"Type\")\n if (type == null || type == \"\") type = \"1\";\n reqUriParams += `&Filter.IdBuyer=${IdAppUser}&Filter.Type=${type}`;\n }\n var IdAd = new URL(location.href).searchParams.get(\"IdAd\")\n\n if (IdAd != null) {\n reqUriParams += `&Filter.IdAd=${IdAd}`;\n }\n }\n\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}?${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao pesquisar as Mensagens\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n UploadPhoto: async function (idAd, idLead, file) {\n let reqUri = `${constants.API_ENDPOINT_LEADS}/${idAd}/messages/${idLead}/photos`;\n var formData = new FormData();\n formData.append('file', file);\n\n let result = await fetch(reqUri, { \n method: constants.HTTP_METHOD_POST,\n body: formData\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar a Fotografia\");\n return null;\n }else if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }else{\n this.OnError(resp, \"Ocorreu uma anomalia ao fazer o upload da Fotografia\");\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Fotografia adicionada com sucesso\");\n }else{\n this.OnError(resp, \"Ocorreu uma anomalia ao fazer o upload da Fotografia\");\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n GetStats: async function (searchTerm, IdAppUser, IdAd) {\n let reqUriParams = `orderDirection=ASC`;\n\n if (IdAppUser != null) {\n reqUriParams += `&Filter.IdBuyer=${IdAppUser}`;\n }\n \n if (IdAd != null) {\n reqUriParams += `&Filter.IdAd=${IdAd}`;\n }\n if (searchTerm !== '') {\n reqUriParams += `&SearchTerm=${encodeURI(searchTerm)}`;\n }\n\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/stats?${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao obter os Contadores\");\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n GetLead: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar a Mensagem\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n GetLeadMessages: async function (idlead, num, size) {\n let reqUriParams = `orderDirection=ASC`;\n if (num != '') {\n reqUriParams += `&PageNum=${num}`;\n }\n if (size != '') {\n reqUriParams += `&PageSize=${size}`;\n }\n\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/messages?${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao ler as Mensagens\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n SetAdvertiserMessagesAsRead: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/adv-readed`, {\n method: constants.HTTP_METHOD_PUT\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao ler a Mensagem do anúnciante\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n // CreateLead: async function (formData) {\n // let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/adv-readed`, {\n // method: constants.HTTP_METHOD_POST,\n // headers: constants.HTTP_HEADERS_JSON,\n // body: JSON.stringify(formData)\n // })\n // .then(resp => {\n // if (!resp.ok) {\n // if (resp.status == 500) {\n // this.OnError(resp);\n // return null;\n // }\n // }\n\n // return resp.json();\n // });\n\n // return result;\n // },\n\n CreateLeadMessage: async function (idLead, formData) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idLead}/messages`, {\n method: constants.HTTP_METHOD_POST,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(formData)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao criar a Mensagem\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n SetUserMessagesAsRead: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/usr-readed`, {\n method: constants.HTTP_METHOD_PUT,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(idlead)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao ler a Mensagem do utilizador\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n ArchiveLead: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/archive`, {\n method: constants.HTTP_METHOD_POST,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(idlead)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao arquivar a Mensagem\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Mensagem arquivada com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n UnarchiveLead: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/unarchive`, {\n method: constants.HTTP_METHOD_POST,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(idlead)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao arquivar a Mensagem\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Mensagem arquivada com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n DeleteLead: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/`, {\n method: constants.HTTP_METHOD_DELETE,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(idlead)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao remover a Mensagem\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Mensagem eliminada com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n GetLeadBuyerInfo: async function (idlead) {\n let result = await fetch(`${constants.API_ENDPOINT_LEADS}/${idlead}/buyer`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status == 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar os dados da Mensagem\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n}","import * as constants from \"../constants.js\";\nimport notifications from \"../notifications.js\";\n\n\nexport default {\n OnSuccess(description) {\n notifications.Success(\"Propostas\", description, constants.NOTIFICATION_SUCCESS_MESSAGE_TIMEOUT);\n },\n\n OnWarning(resp, description) {\n notifications.Warning(\"Propostas\", description);\n console.log(resp);\n },\n\n OnError(resp, description) {\n notifications.Error(\"Propostas\", description);\n console.log(resp);\n },\n\n OnUnauthorized() {\n window.location = \"/\";\n },\n\n SearchProcurementRequests: async function (size, num, orderDirection, orderBy, searchTerm, status, matching) {\n let reqUri = `${constants.API_ENDPOINT_PROCUREMENT}/requests/${size}/${num}`;\n let reqUriParams = '';\n\n if (orderDirection) {\n reqUriParams += `orderDirection=${orderDirection}&`;\n }\n\n if (orderBy) {\n reqUriParams += `orderBy=${orderBy}&`;\n }\n\n if (searchTerm) {\n reqUriParams += `searchTerm=${encodeURI(searchTerm)}&`;\n }\n\n if (status != null && status != undefined) {\n reqUriParams += `status=${status}&`;\n }\n\n if (matching != null && matching != undefined) {\n reqUriParams += `matching=${matching}&`;\n }\n\n // Remove the trailing '&' if any\n reqUriParams = reqUriParams.replace(/&$/, '');\n\n let result = await fetch(`${reqUri}?${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao pesquisar as Propostas\");\n return null;\n } else if (resp.status == 400) {\n this.OnWarning(resp, \"Existem incoerrências com os dados\");\n } else if (resp.status == 401) {\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n GetProcurementRequest: async function (idProcurementRequest) {\n let reqUri = `${constants.API_ENDPOINT_PROCUREMENT}/requests/${idProcurementRequest}`;\n let reqUriParams = '';\n\n let result = await fetch(`${reqUri}${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar a Proposta\");\n return null;\n }\n if (resp.status == 401) {\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n // let relatedAdsResult = await procurementClient.GetRelatedAds(this.propIdProcurementRequest, this.relatedAds.pSize, this.relatedAds.pNum, this.relatedAds.orderBy, this.relatedAds.orderDirection, this.relatedAds.searchTerm);\n\n GetRelatedAds: async function (idProcurementRequest, size, num, orderBy, orderDirection, searchTerm, searchRequestRelatedAds) {\n let reqUri = `${constants.API_ENDPOINT_PROCUREMENT}/requests/${idProcurementRequest}/relatedAds/${size}/${num}`;\n let reqUriParams = '';\n\n if (orderBy) {\n reqUriParams += `orderBy=${orderBy}&`;\n }\n\n if (orderDirection) {\n reqUriParams += `orderDirection=${orderDirection}&`;\n }\n\n if (searchTerm) {\n reqUriParams += `searchTerm=${encodeURI(searchTerm)}&`;\n }\n\n if (searchRequestRelatedAds) {\n reqUriParams += `searchRequestRelatedAds=${searchRequestRelatedAds}&`;\n }\n\n // Remove the trailing '&' if any\n reqUriParams = reqUriParams.replace(/&$/, '');\n\n let result = await fetch(`${reqUri}?${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar os Anúncios Relacionados\");\n return null;\n }\n if (resp.status == 401) {\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n CreateResponses: async function (idProcurementRequest, formData) {\n let reqUri = `${constants.API_ENDPOINT_PROCUREMENT}/requests/${idProcurementRequest}`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_POST,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(formData)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao enviar a Proposta\");\n return null;\n }\n if (resp.status == 401) {\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Proposta enviada com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n UpdateReaded: async function (idProcurementRequest, readed, showMessage) {\n let reqUri = `${constants.API_ENDPOINT_PROCUREMENT}/responses/${idProcurementRequest}/${readed}`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_POST,\n headers: constants.HTTP_HEADERS_JSON\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao atualizar o estado do pedido de proposta\");\n return null;\n }\n if (resp.status == 401) {\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n if (showMessage) {\n this.OnSuccess(\"Atualizado com sucesso!\");\n }\n }\n }\n\n\n return resp.json();\n });\n\n return result;\n },\n DeleteProcurementRequestAdvertiser: async function (idProcurementRequest) {\n let reqUri = `${constants.API_ENDPOINT_PROCUREMENT}/requests/${idProcurementRequest}`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_DELETE,\n headers: constants.HTTP_HEADERS_JSON\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao atualizar o estado do pedido de proposta\");\n return null;\n }\n if (resp.status == 401) {\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Apagado com sucesso!\");\n }\n }\n\n\n return resp.json();\n });\n\n return result;\n }\n}","import * as constants from \"../constants.js\";\nimport notifications from \"../notifications.js\";\n\n\nexport default {\n OnSuccess(description) {\n notifications.Success(\"Propostas\", description, constants.NOTIFICATION_SUCCESS_MESSAGE_TIMEOUT);\n },\n\n OnWarning(resp, description) {\n notifications.Warning(\"Propostas\", description);\n console.log(resp);\n },\n\n OnError(resp, description) {\n notifications.Error(\"Propostas\", description);\n console.log(resp);\n },\n\n OnUnauthorized(){\n window.location = \"/\";\n },\n\n SearchCarMatchUsedRequests: async function (size, num, orderDirection, orderBy, searchTerm, status, matching) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${size}/${num}`;\n let reqUriParams = '';\n\n if (orderDirection) {\n reqUriParams += `orderDirection=${orderDirection}&`;\n }\n \n if (orderBy) {\n reqUriParams += `orderBy=${orderBy}&`;\n }\n\n if (searchTerm) {\n reqUriParams += `searchTerm=${encodeURI(searchTerm)}&`;\n }\n\n if (status != null && status != undefined) {\n reqUriParams += `status=${status}&`;\n }\n\n if (matching != null && matching != undefined) {\n reqUriParams += `matching=${matching}&`;\n }\n\n // Remove the trailing '&' if any\n reqUriParams = reqUriParams.replace(/&$/, '');\n\n let result = await fetch(`${reqUri}?${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao pesquisar as Propostas\");\n return null;\n } else if (resp.status == 400) {\n this.OnWarning(resp, \"Existem incoerrências com os dados\");\n } else if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n UnlockContacts : async function(idCarMatchUsedRequest){\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idCarMatchUsedRequest}/unlockContacts`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_POST\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao desbloquear os contactos\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Contactos desbloqueados com sucesso!\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n GetCarMatchUsedRequest: async function (idCarMatchUsedRequest, searchTerm) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idCarMatchUsedRequest}`;\n let reqUriParams = '';\n\n if (searchTerm != null && searchTerm != \"\")\n reqUriParams += `?searchTerm=${encodeURI(searchTerm)}`;\n\n\n let result = await fetch(`${reqUri}${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar a Proposta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n GetRelatedAds: async function (idCarMatchUsedRequest, size, num, searchTerm) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idCarMatchUsedRequest}/relatedAds/${size}/${num}`;\n let reqUriParams = '';\n\n if (searchTerm != null && searchTerm != \"\")\n reqUriParams += `?searchTerm=${encodeURI(searchTerm)}`;\n\n let result = await fetch(`${reqUri}${reqUriParams}`, {\n method: constants.HTTP_METHOD_GET\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar os Anúncios Relacionados\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n \n UpdateReaded: async function (idRequest, showMessage) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idRequest}/read`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_POST\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao atualizar o estado do pedido de proposta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n if (showMessage) {\n this.OnSuccess(\"Atualizado com sucesso!\");\n }\n }\n }\n\n\n return resp.json();\n });\n\n return result;\n },\n\n DeleteCarMatchUsedRequestAdvertiser: async function (idCarMatchUsedRequest) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idCarMatchUsedRequest}`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_DELETE\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao eliminar a Proposta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Proposta eliminada com sucesso!\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n \n UpdateAsRejected: async function (idRequest, showMessage) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idRequest}/reject`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_POST\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao atualizar o estado do pedido de proposta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n if (showMessage) {\n this.OnSuccess(\"Atualizado com sucesso!\");\n }\n }\n }\n\n\n return resp.json();\n });\n\n return result;\n },\n \n CreateResponse: async function (idRequest, formData) {\n let reqUri = `${constants.API_ENDPOINT_CARMATCHUSED}/requests/${idRequest}/response`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_POST,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(formData)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao enviar a Proposta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Proposta enviada com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n}","import * as constants from \"../constants.js\";\nimport notifications from \"../notifications\";\n\n\nexport default {\n OnSuccess(description) {\n notifications.Success(\"Serviços\", description);\n },\n\n OnWarning(resp, description) {\n notifications.Warning(\"Serviços\", description);\n console.log(resp);\n },\n\n OnError(resp, description) {\n notifications.Error(\"Serviços\", description);\n console.log(resp);\n },\n\n OnUnauthorized(){\n window.location = \"/\";\n },\n \n GetProcurementService: async function () {\n let reqUri = `${constants.API_ENDPOINT_SERVICES}/procurement`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_GET \n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar o Serviço de Propostas\");\n return null;\n } else if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n } else if (resp.status >= 400){\n return null;\n }\n }\n\n if (resp.status == 204) \n return null;\n\n return resp.json();\n });\n\n return result;\n },\n\n GetHighlightService: async function () {\n let reqUri = `${constants.API_ENDPOINT_SERVICES}/highlight`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_GET \n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar o Serviço de Destaques\");\n return null;\n } else if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n } else if (resp.status >= 400){\n return null;\n }\n }\n\n if (resp.status == 204) \n return null;\n \n return resp.json();\n });\n\n return result;\n },\n GetCarMatchUsedService: async function () {\n let reqUri = `${constants.API_ENDPOINT_SERVICES}/carmatchused`;\n let result = await fetch(reqUri, {\n method: constants.HTTP_METHOD_GET \n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar o Serviço de CarMatch\");\n return null;\n } else if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n } else if (resp.status >= 400){\n return null;\n }\n }\n\n if (resp.status == 204) \n return null;\n\n return resp.json();\n });\n\n return result;\n },\n}\n","import * as constants from \"../constants.js\";\nimport notifications from \"../notifications\";\n\n\nexport default {\n OnSuccess(description) {\n notifications.Success(\"Alertas\", description);\n },\n\n OnError(resp, description) {\n notifications.Error(\"Alertas\", description);\n console.log(resp);\n },\n\n OnUnauthorized(){\n window.location = \"/\";\n },\n \n GetAlertsPage: async function (size, num, orderDirection, searchTerm) {\n let reqUri = `${constants.API_ENDPOINT_ALERTS}/${size}/${num}`;\n let reqUriParams = `orderDirection=${orderDirection}&searchTerm=${encodeURI(searchTerm)}`;\n let result = await fetch(`${reqUri}?${reqUriParams}`, { \n method: constants.HTTP_METHOD_GET \n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao carregar os Alertas\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n \n ReadAlerts: async function (formData) {\n let reqUri = `${constants.API_ENDPOINT_ALERTS}/read`;\n let result = await fetch(reqUri, { \n method: constants.HTTP_METHOD_PUT,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(formData)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao ler o Alerta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n \n RemoveAlert: async function (formData, showNotification) {\n let reqUri = `${constants.API_ENDPOINT_ALERTS}/remove`;\n let result = await fetch(reqUri, { \n method: constants.HTTP_METHOD_PUT,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(formData)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao eliminar o Alerta\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n if (showNotification == null || showNotification)\n this.OnSuccess(\"Alerta eliminado com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n\n RemoveAlerts: async function (formData) {\n let reqUri = `${constants.API_ENDPOINT_ALERTS}/remove`;\n let result = await fetch(reqUri, { \n method: constants.HTTP_METHOD_PUT,\n headers: constants.HTTP_HEADERS_JSON,\n body: JSON.stringify(formData)\n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao eliminar os Alertas\");\n return null;\n }\n if(resp.status == 401){\n this.OnUnauthorized();\n return null;\n }\n } else {\n if (resp.status == 200) {\n this.OnSuccess(\"Alertas eliminados com sucesso\");\n }\n }\n\n return resp.json();\n });\n\n return result;\n },\n \n CountAlerts: async function () {\n let reqUri = `${constants.API_ENDPOINT_ALERTS}/count`;\n let result = await fetch(reqUri, { \n method: constants.HTTP_METHOD_GET \n })\n .then(resp => {\n if (!resp.ok) {\n if (resp.status >= 500) {\n this.OnError(resp, \"Ocorreu uma anomalia ao contabilizar os Alertas\");\n return null;\n }\n }\n\n return resp.json();\n });\n\n return result;\n }\n}\n","import alertsClient from \"../scripts/services/alertsClient.js\";\nimport leadsClient from \"../scripts/services/leadsClient.js\";\nimport procurementClient from \"../scripts/services/procurementClient.js\";\nimport carMatchUsedClient from \"../scripts/services/carMatchUsedClient.js\";\nimport servicesClient from \"../scripts/services/servicesClient.js\";\n\nalertsClient.CountAlerts()\n .then(countResult => document.getElementById(\"alertBadge\").textContent = countResult);\n\n\n\nleadsClient.GetStats(\"\", null, null)\n .then(countResult => {\n const messagesUnread = document.getElementById(\"messages-unread\");\n if (messagesUnread) {\n if (countResult.Unread !== 0) {\n messagesUnread.textContent = countResult.Unread;\n } else {\n messagesUnread.style.display = \"none\";\n }\n }\n });\n\nconst procurementUnread = document.getElementById(\"procurement-requests-unread\");\n\nif (procurementUnread) {\n\n Promise.all([\n servicesClient.GetProcurementService(),\n servicesClient.GetCarMatchUsedService()\n ]).then((values) => {\n let procurementServiceActive = values[0] && values[0].IsActive;\n let carMatchUsedServiceActive = values[1] && values[1].IsActive;\n\n if (procurementServiceActive) {\n procurementClient.SearchProcurementRequests(1000, 1, null, null, null, 0)\n .then(countResult => {\n if (countResult.Total > 0) {\n const totalUnread = countResult.Items.filter(item => !item.ReadDate).length;\n if (totalUnread > 0) {\n procurementUnread.textContent = totalUnread;\n } else {\n procurementUnread.style.display = \"none\";\n }\n }\n });\n }\n\n else if (carMatchUsedServiceActive) {\n carMatchUsedClient.SearchCarMatchUsedRequests(1000, 1, null, null, null, 1)\n .then(countResult => {\n if (countResult.Total > 0) {\n const totalUnread = countResult.Items.filter(item => !item.ReadDate).length;\n if (totalUnread > 0) {\n procurementUnread.textContent = totalUnread;\n } else {\n procurementUnread.style.display = \"none\";\n }\n }\n });\n\n }\n });\n\n\n // Promise.all([\n // procurementClient.SearchProcurementRequests(1000, 1, null, null, null, 0),\n // carMatchUsedClient.SearchCarMatchUsedRequests(1000, 1, null, null, null, 0)\n // ]).then(([procurementCountResult, carMatchCountResult]) => {\n // var totalUnread = 0;\n\n // if (carMatchCountResult && carMatchCountResult.Total > 0) {\n // totalUnread += carMatchCountResult.Items.filter(item => !item.ReadDate).length;\n // }\n\n // if (procurementCountResult && procurementCountResult.Total > 0) {\n // totalUnread += procurementCountResult.Items.filter(item => !item.ReadDate).length;\n // }\n\n // if (totalUnread > 0) {\n // procurementUnread.textContent = totalUnread;\n // } else {\n // procurementUnread.style.display = \"none\";\n // }\n // }).catch(error => {\n // console.error('Error fetching procurement or car match requests:', error);\n // });\n}\n\n"],"names":["HTTP_METHOD_GET","HTTP_METHOD_POST","HTTP_METHOD_PUT","HTTP_METHOD_DELETE","HTTP_HEADERS_JSON","API_ENDPOINT_LEADS","API_ENDPOINT_ALERTS","API_ENDPOINT_PROCUREMENT","API_ENDPOINT_SERVICES","API_ENDPOINT_CARMATCHUSED","Success","title","description","timeout","GrowlNotification","notify","type","position","closeTimeout","showProgress","Warning","Error","CloseAll","closeAll","OnSuccess","notifications","OnError","resp","OnUnauthorized","window","location","GetLeads","async","size","num","orderDirection","searchTerm","status","filter","orderBy","reqUriParams","encodeURI","undefined","FilterBy","IdAppUser","URL","href","searchParams","get","IdAd","fetch","method","then","ok","this","json","UploadPhoto","idAd","idLead","file","reqUri","formData","FormData","append","body","GetStats","GetLead","idlead","GetLeadMessages","SetAdvertiserMessagesAsRead","CreateLeadMessage","headers","JSON","stringify","SetUserMessagesAsRead","ArchiveLead","UnarchiveLead","DeleteLead","GetLeadBuyerInfo","OnWarning","console","log","SearchProcurementRequests","matching","replace","GetProcurementRequest","idProcurementRequest","GetRelatedAds","searchRequestRelatedAds","CreateResponses","UpdateReaded","readed","showMessage","DeleteProcurementRequestAdvertiser","SearchCarMatchUsedRequests","UnlockContacts","idCarMatchUsedRequest","GetCarMatchUsedRequest","idRequest","DeleteCarMatchUsedRequestAdvertiser","UpdateAsRejected","CreateResponse","GetProcurementService","GetHighlightService","GetCarMatchUsedService","GetAlertsPage","ReadAlerts","RemoveAlert","showNotification","RemoveAlerts","CountAlerts","countResult","document","getElementById","textContent","leadsClient","messagesUnread","Unread","style","display","procurementUnread","Promise","all","servicesClient","values","procurementServiceActive","IsActive","carMatchUsedServiceActive","procurementClient","Total","totalUnread","Items","item","ReadDate","length","carMatchUsedClient"],"sourceRoot":""}