blob: c6c6a3d83f709842c2bacac151269bd9012c7e9c [file] [log] [blame]
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class BaseUrlService {
getPort() {
let port = Number(location.port);
if (!port) {
port = 80;
if (location.protocol === 'https:') {
port = 443;
}
}
return port;
}
getWebsocketUrl() {
const wsProtocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
return `${wsProtocol}//${location.hostname}:${this.getPort()}${this.skipTrailingSlash(location.pathname)}/ws`;
}
getBase() {
return `${location.protocol}//${location.hostname}:${this.getPort()}${location.pathname}`;
}
getRestApiBase() {
return this.skipTrailingSlash(this.getBase()) + '/api';
}
skipTrailingSlash(path) {
return path.replace(/\/$/, '');
}
}