Add configuration endpoint.
This commit is contained in:
111
wise-api/src/main/java/com/wisemapping/rest/AppController.java
Normal file
111
wise-api/src/main/java/com/wisemapping/rest/AppController.java
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Copyright [2022] [wisemapping]
|
||||
*
|
||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||
* "powered by wisemapping" text requirement on every single page;
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the license at
|
||||
*
|
||||
* http://www.wisemapping.org/license
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package com.wisemapping.rest;
|
||||
|
||||
import com.wisemapping.rest.model.RestAppConfig;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
// "config": {
|
||||
// "apiBaseUrl": "http://localhost:3000",
|
||||
// "analyticsAccount": "G-RSDEJH16YM",
|
||||
// "clientType": "mock",
|
||||
// "recaptcha2Enabled": false,
|
||||
// "recaptcha2SiteKey": "6Lcat08kAAAAAIP-HjhzIa-Yq21PHgGa_ADWc-Ro",
|
||||
// "googleOauth2Url": "https: //accounts.google.com/o/oauth2/v2/auth?redirect_uri=https://app.wisemapping.com/c/registration-google&prompt=consent&response_type=code&client_id=625682766634-cocbbbbb403iuvps1evecdk6d7phvbkf.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&access_type=offline&state=wisemapping&include_granted_scopes=true"
|
||||
// }
|
||||
@RestController
|
||||
@RequestMapping("/api/restful/app")
|
||||
public class AppController extends BaseController {
|
||||
|
||||
@Value("${app.security.oauth2.google.url:}")
|
||||
private String googleOauth2Url;
|
||||
|
||||
@Value("${app.registration.enabled:true}")
|
||||
private Boolean isRegistrationEnabled;
|
||||
|
||||
@Value("${app.registration.captcha.enabled:false}")
|
||||
private Boolean isCaptchaEnabled;
|
||||
|
||||
@Value("${app.registration.captcha.siteKey:}")
|
||||
private String captchaSiteKey;
|
||||
|
||||
@Value("${app.site.api-base-url:}")
|
||||
private String apiBaseUrl;
|
||||
|
||||
@Value("${app.analytics.account:}")
|
||||
private String analyticsAccount;
|
||||
|
||||
@RequestMapping(method = RequestMethod.GET, value = "/config")
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
public RestAppConfig appConfig() {
|
||||
return new RestAppConfig.RestAppConfigBuilder()
|
||||
.setApiUrl(apiBaseUrl)
|
||||
.setCaptchaSiteKey(captchaSiteKey)
|
||||
.setGoogleOauth2Url(googleOauth2Url)
|
||||
.setAnalyticsAccount(analyticsAccount)
|
||||
.setRegistrationEnabled(isRegistrationEnabled)
|
||||
.build();
|
||||
}
|
||||
|
||||
public String getGoogleOauth2Url() {
|
||||
return googleOauth2Url;
|
||||
}
|
||||
|
||||
public void setGoogleOauth2Url(String googleOauth2Url) {
|
||||
this.googleOauth2Url = googleOauth2Url;
|
||||
}
|
||||
|
||||
public Boolean getRegistrationEnabled() {
|
||||
return isRegistrationEnabled;
|
||||
}
|
||||
|
||||
public void setRegistrationEnabled(Boolean registrationEnabled) {
|
||||
isRegistrationEnabled = registrationEnabled;
|
||||
}
|
||||
|
||||
public Boolean getCaptchaEnabled() {
|
||||
return isCaptchaEnabled;
|
||||
}
|
||||
|
||||
public void setCaptchaEnabled(Boolean captchaEnabled) {
|
||||
isCaptchaEnabled = captchaEnabled;
|
||||
}
|
||||
|
||||
public String getCaptchaSiteKey() {
|
||||
return captchaSiteKey;
|
||||
}
|
||||
|
||||
public void setCaptchaSiteKey(String captchaSiteKey) {
|
||||
this.captchaSiteKey = captchaSiteKey;
|
||||
}
|
||||
|
||||
public String getApiBaseUrl() {
|
||||
return apiBaseUrl;
|
||||
}
|
||||
|
||||
public void setApiBaseUrl(String apiBaseUrl) {
|
||||
this.apiBaseUrl = apiBaseUrl;
|
||||
}
|
||||
}
|
@@ -48,7 +48,6 @@ public class LabelController extends BaseController {
|
||||
@Autowired
|
||||
private LabelService labelService;
|
||||
|
||||
|
||||
@RequestMapping(method = RequestMethod.POST, value = "", consumes = {"application/json"})
|
||||
@ResponseStatus(value = HttpStatus.CREATED)
|
||||
public void createLabel(@RequestBody RestLabel restLabel, @NotNull HttpServletResponse response, @RequestParam(required = false) String title) throws WiseMappingException {
|
||||
|
@@ -65,7 +65,7 @@ public class MindmapController extends BaseController {
|
||||
@Autowired
|
||||
private UserService userService;
|
||||
|
||||
@Value("${accounts.maxInactive:20}")
|
||||
@Value("${app.accounts.max-inactive:20}")
|
||||
private int maxAccountsInactive;
|
||||
|
||||
|
||||
|
@@ -0,0 +1,145 @@
|
||||
/*
|
||||
* Copyright [2022] [wisemapping]
|
||||
*
|
||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||
* "powered by wisemapping" text requirement on every single page;
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the license at
|
||||
*
|
||||
* http://www.wisemapping.org/license
|
||||
*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package com.wisemapping.rest.model;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAutoDetect;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
|
||||
@JsonAutoDetect(
|
||||
fieldVisibility = JsonAutoDetect.Visibility.NONE,
|
||||
getterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY,
|
||||
isGetterVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class RestAppConfig {
|
||||
private String apiBaseUrl;
|
||||
private String googleOauth2Url;
|
||||
private boolean registrationEnabled;
|
||||
private boolean recaptcha2Enabled;
|
||||
private String recaptcha2SiteKey;
|
||||
private String analyticsAccount;
|
||||
|
||||
RestAppConfig() {
|
||||
|
||||
}
|
||||
|
||||
public String getApiBaseUrl() {
|
||||
return apiBaseUrl;
|
||||
}
|
||||
|
||||
public void setApiBaseUrl(String apiBaseUrl) {
|
||||
this.apiBaseUrl = apiBaseUrl;
|
||||
}
|
||||
|
||||
public String getGoogleOauth2Url() {
|
||||
return googleOauth2Url;
|
||||
}
|
||||
|
||||
public void setGoogleOauth2Url(String googleOauth2Url) {
|
||||
this.googleOauth2Url = googleOauth2Url;
|
||||
}
|
||||
|
||||
public boolean isRegistrationEnabled() {
|
||||
return registrationEnabled;
|
||||
}
|
||||
|
||||
public void setRegistrationEnabled(boolean registrationEnabled) {
|
||||
this.registrationEnabled = registrationEnabled;
|
||||
}
|
||||
|
||||
public boolean isRecaptcha2Enabled() {
|
||||
return recaptcha2Enabled;
|
||||
}
|
||||
|
||||
public void setRecaptcha2Enabled(boolean recaptcha2Enabled) {
|
||||
this.recaptcha2Enabled = recaptcha2Enabled;
|
||||
}
|
||||
|
||||
public String getRecaptcha2SiteKey() {
|
||||
return recaptcha2SiteKey;
|
||||
}
|
||||
|
||||
public void setRecaptcha2SiteKey(String recaptcha2SiteKey) {
|
||||
this.recaptcha2SiteKey = recaptcha2SiteKey;
|
||||
}
|
||||
|
||||
public String getAnalyticsAccount() {
|
||||
return analyticsAccount;
|
||||
}
|
||||
|
||||
public void setAnalyticsAccount(String analyticsAccount) {
|
||||
this.analyticsAccount = analyticsAccount;
|
||||
}
|
||||
|
||||
public static class RestAppConfigBuilder {
|
||||
private String apiBaseUrl;
|
||||
private String googleOauth2Url;
|
||||
private boolean registrationEnabled;
|
||||
private boolean isCatchaEnabled = false;
|
||||
private String captchaSiteKey;
|
||||
private String analyticsAccount;
|
||||
|
||||
public RestAppConfigBuilder setCaptchaSiteKey(@NotNull String captchaSiteKey) {
|
||||
this.captchaSiteKey = captchaSiteKey;
|
||||
this.isCatchaEnabled = true;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RestAppConfigBuilder setApiUrl(@NotNull String apiBaseUrl) {
|
||||
this.apiBaseUrl = apiBaseUrl;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RestAppConfigBuilder setGoogleOauth2Url(@NotNull String googleOauth2Url) {
|
||||
this.googleOauth2Url = googleOauth2Url;
|
||||
return this;
|
||||
}
|
||||
|
||||
private void setGoogleAnalyticsAccount(@NotNull String analyticsAccount) {
|
||||
this.analyticsAccount = analyticsAccount;
|
||||
}
|
||||
|
||||
public RestAppConfigBuilder setRegistrationEnabled(@NotNull boolean registrationEnabled) {
|
||||
this.registrationEnabled = registrationEnabled;
|
||||
return this;
|
||||
}
|
||||
|
||||
public RestAppConfigBuilder setAnalyticsAccount(@NotNull String analyticsAccount) {
|
||||
this.analyticsAccount = analyticsAccount;
|
||||
return this;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public RestAppConfig build() {
|
||||
final RestAppConfig result = new RestAppConfig();
|
||||
result.googleOauth2Url = googleOauth2Url;
|
||||
result.recaptcha2SiteKey = captchaSiteKey;
|
||||
result.recaptcha2Enabled = isCatchaEnabled;
|
||||
result.apiBaseUrl = apiBaseUrl;
|
||||
result.registrationEnabled = registrationEnabled;
|
||||
result.analyticsAccount = analyticsAccount;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user