chore: Split up prepare workspace into separate method (#23425)

## Description
Refactor change to allow create workspace preparation to happen in a
separate method.

#### Type of change
- Chore (housekeeping or task changes that don't impact user perception)

Does not need testing, will be covered as part of regression and
existing test suites.
This commit is contained in:
Nidhi 2023-05-17 08:12:44 +05:30 committed by GitHub
parent 12c66d5b3f
commit bd993e145c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 14 deletions

View File

@ -4,14 +4,13 @@ import com.appsmith.external.models.BaseDomain;
import com.appsmith.external.views.Views;
import com.appsmith.server.constants.Url;
import com.fasterxml.jackson.annotation.JsonView;
import jakarta.validation.constraints.NotBlank;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import org.springframework.data.mongodb.core.mapping.Document;
import jakarta.validation.constraints.NotBlank;
import java.util.List;
import java.util.Set;
@ -46,7 +45,7 @@ public class Workspace extends BaseDomain {
@Deprecated
@JsonView(Views.Public.class)
private Boolean isAutoGeneratedOrganization;
@JsonView(Views.Public.class)
private Boolean isAutoGeneratedWorkspace;
@ -60,6 +59,9 @@ public class Workspace extends BaseDomain {
@JsonView(Views.Public.class)
private String tenantId;
@JsonView(Views.Internal.class)
private Boolean hasEnvironments;
@JsonView(Views.Internal.class)
private Set<String> defaultPermissionGroups;

View File

@ -4,7 +4,6 @@ import com.appsmith.external.helpers.AppsmithBeanUtils;
import com.appsmith.external.models.Policy;
import com.appsmith.server.acl.AclPermission;
import com.appsmith.server.acl.AppsmithRole;
import com.appsmith.server.acl.RoleGraph;
import com.appsmith.server.constants.Constraint;
import com.appsmith.server.constants.FieldName;
import com.appsmith.server.domains.Asset;
@ -23,17 +22,16 @@ import com.appsmith.server.helpers.TextUtils;
import com.appsmith.server.repositories.ApplicationRepository;
import com.appsmith.server.repositories.AssetRepository;
import com.appsmith.server.repositories.PluginRepository;
import com.appsmith.server.repositories.UserRepository;
import com.appsmith.server.repositories.WorkspaceRepository;
import com.appsmith.server.services.AnalyticsService;
import com.appsmith.server.services.AssetService;
import com.appsmith.server.services.BaseService;
import com.appsmith.server.services.PermissionGroupService;
import com.appsmith.server.services.SessionUserService;
import com.appsmith.server.services.UserWorkspaceService;
import com.appsmith.server.solutions.PermissionGroupPermission;
import com.appsmith.server.solutions.WorkspacePermission;
import com.mongodb.DBObject;
import jakarta.validation.Validator;
import lombok.extern.slf4j.Slf4j;
import org.modelmapper.ModelMapper;
import org.springframework.beans.factory.annotation.Autowired;
@ -50,8 +48,6 @@ import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.core.scheduler.Scheduler;
import jakarta.validation.Validator;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -175,12 +171,8 @@ public class WorkspaceServiceCEImpl extends BaseService<WorkspaceRepository, Wor
// Does the user have permissions to create a workspace?
Mono<Boolean> createWorkspaceAllowedMono = isCreateWorkspaceAllowed(isDefault);
if (workspace.getEmail() == null) {
workspace.setEmail(user.getEmail());
}
workspace.setSlug(TextUtils.makeSlug(workspace.getName()));
workspace.setTenantId(user.getTenantId());
// Populate all the required fields for a valid workspace
prepareWorkspaceToCreate(workspace, user);
return createWorkspaceAllowedMono
.flatMap(isCreateWorkspaceAllowed -> {
@ -213,6 +205,15 @@ public class WorkspaceServiceCEImpl extends BaseService<WorkspaceRepository, Wor
.flatMap(analyticsService::sendCreateEvent);
}
protected void prepareWorkspaceToCreate(Workspace workspace, User user) {
if (workspace.getEmail() == null) {
workspace.setEmail(user.getEmail());
}
workspace.setSlug(TextUtils.makeSlug(workspace.getName()));
workspace.setTenantId(user.getTenantId());
}
protected Mono<Workspace> createWorkspaceDependents(Workspace createdWorkspace) {
// Nothing to create
return Mono.just(createdWorkspace);