generator-nokode 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +214 -0
  2. package/generators/app/index.js +116 -0
  3. package/generators/app/templates/.gradle/9.0.0/checksums/checksums.lock +0 -0
  4. package/generators/app/templates/.gradle/9.0.0/fileChanges/last-build.bin +0 -0
  5. package/generators/app/templates/.gradle/9.0.0/fileHashes/fileHashes.lock +0 -0
  6. package/generators/app/templates/.gradle/9.0.0/gc.properties +0 -0
  7. package/generators/app/templates/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  8. package/generators/app/templates/.gradle/buildOutputCleanup/cache.properties +2 -0
  9. package/generators/app/templates/.gradle/vcs-1/gc.properties +0 -0
  10. package/generators/app/templates/01-code/NokodeSampleApplication.java +13 -0
  11. package/generators/app/templates/01-code/config/AuthConfig.java +10 -0
  12. package/generators/app/templates/01-code/config/CloudStorageConfig.java +30 -0
  13. package/generators/app/templates/01-code/config/MongoConfig.java +43 -0
  14. package/generators/app/templates/01-code/config/NotificationConfig.java +47 -0
  15. package/generators/app/templates/01-code/config/PantherCrudBeans.java +33 -0
  16. package/generators/app/templates/01-code/config/ShedlockConfig.java +24 -0
  17. package/generators/app/templates/01-code/config/WebConfig.java +38 -0
  18. package/generators/app/templates/01-code/config/annotations/AppAuth.java +24 -0
  19. package/generators/app/templates/01-code/config/audit/UserAuditing.java +29 -0
  20. package/generators/app/templates/01-code/config/constants/PantherCrudConstants.java +24 -0
  21. package/generators/app/templates/01-code/config/converters/BsonDocumentToJsonNodeConverter.java +31 -0
  22. package/generators/app/templates/01-code/config/converters/JsonNodeToBsonDocumentConverter.java +32 -0
  23. package/generators/app/templates/01-code/config/converters/ModuleDefinitionDeserializer.java +25 -0
  24. package/generators/app/templates/01-code/config/converters/ModulePermissionDefinitionModule.java +16 -0
  25. package/generators/app/templates/01-code/config/converters/PermissionDefinitionDeserializer.java +25 -0
  26. package/generators/app/templates/01-code/config/converters/StringToModuleDefinitionConverter.java +26 -0
  27. package/generators/app/templates/01-code/config/converters/StringToPermissionDefinitionConverter.java +26 -0
  28. package/generators/app/templates/01-code/config/exception/RestExceptionHandlerService.java +14 -0
  29. package/generators/app/templates/01-code/config/init/ApplicationInit.java +31 -0
  30. package/generators/app/templates/01-code/config/init/DataBuilderService.java +22 -0
  31. package/generators/app/templates/01-code/config/init/UserAndRoleInitService.java +71 -0
  32. package/generators/app/templates/01-code/config/interceptors/AuthInterceptor.java +25 -0
  33. package/generators/app/templates/01-code/config/interceptors/CorsFilterConfig.java +28 -0
  34. package/generators/app/templates/01-code/config/interceptors/LocaleInterceptor.java +26 -0
  35. package/generators/app/templates/01-code/config/interceptors/RequestContextInterceptor.java +26 -0
  36. package/generators/app/templates/01-code/config/openapi/OpenAPIConfig.java +48 -0
  37. package/generators/app/templates/01-code/role/domain/Role.java +21 -0
  38. package/generators/app/templates/01-code/role/dto/RoleCreateDto.java +31 -0
  39. package/generators/app/templates/01-code/role/dto/RoleDetailDto.java +31 -0
  40. package/generators/app/templates/01-code/role/dto/RoleSearchDto.java +30 -0
  41. package/generators/app/templates/01-code/role/enums/ModuleEnum.java +9 -0
  42. package/generators/app/templates/01-code/role/enums/PermissionEnum.java +9 -0
  43. package/generators/app/templates/01-code/role/mapper/RoleCreateDtoMapper.java +19 -0
  44. package/generators/app/templates/01-code/role/mapper/RoleDetailDtoMapper.java +19 -0
  45. package/generators/app/templates/01-code/role/mapper/RoleSearchDtoMapper.java +19 -0
  46. package/generators/app/templates/01-code/role/repository/RoleRepository.java +11 -0
  47. package/generators/app/templates/01-code/role/service/RoleCrudService.java +36 -0
  48. package/generators/app/templates/01-code/user/domain/User.java +32 -0
  49. package/generators/app/templates/01-code/user/dto/EmailLoginDto.java +42 -0
  50. package/generators/app/templates/01-code/user/dto/ResetEmailPasswordDto.java +31 -0
  51. package/generators/app/templates/01-code/user/dto/UserCreateDto.java +29 -0
  52. package/generators/app/templates/01-code/user/dto/UserDetailDto.java +25 -0
  53. package/generators/app/templates/01-code/user/dto/UserSearchDto.java +25 -0
  54. package/generators/app/templates/01-code/user/dto/UserSignupDto.java +37 -0
  55. package/generators/app/templates/01-code/user/mapper/UserCreateDtoMapper.java +19 -0
  56. package/generators/app/templates/01-code/user/mapper/UserDetailDtoMapper.java +19 -0
  57. package/generators/app/templates/01-code/user/mapper/UserSearchDtoMapper.java +19 -0
  58. package/generators/app/templates/01-code/user/mapper/UserSignupDtoMapper.java +21 -0
  59. package/generators/app/templates/01-code/user/repository/UserRepository.java +10 -0
  60. package/generators/app/templates/01-code/user/service/UserCrudService.java +70 -0
  61. package/generators/app/templates/02-test-code/NokodeSampleApplicationTests.java +13 -0
  62. package/generators/app/templates/03-main-resources/META-INF/additional-spring-configuration-metadata.json +34 -0
  63. package/generators/app/templates/03-main-resources/application.properties +21 -0
  64. package/generators/app/templates/build.gradle +104 -0
  65. package/generators/app/templates/build.sh +7 -0
  66. package/generators/app/templates/gradle/wrapper/gradle-wrapper.jar +0 -0
  67. package/generators/app/templates/gradle/wrapper/gradle-wrapper.properties +7 -0
  68. package/generators/app/templates/gradlew +252 -0
  69. package/generators/app/templates/gradlew.bat +94 -0
  70. package/generators/app/templates/settings.gradle +1 -0
  71. package/generators/base-generator.js +70 -0
  72. package/generators/constants.js +14 -0
  73. package/index.js +74 -0
  74. package/package.json +42 -0
@@ -0,0 +1,19 @@
1
+ package <%= packageName %>.role.mapper;
2
+
3
+ import com.sixsprints.core.mapper.GenericCrudMapper;
4
+
5
+ import <%= packageName %>.role.domain.Role;
6
+ import <%= packageName %>.role.dto.RoleSearchDto;
7
+
8
+ import org.mapstruct.Mapper;
9
+ import org.mapstruct.ReportingPolicy;
10
+
11
+ @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
12
+ public abstract class RoleSearchDtoMapper extends GenericCrudMapper<Role, RoleSearchDto> {
13
+
14
+ @Override
15
+ public abstract Role toDomain(RoleSearchDto dto);
16
+
17
+ @Override
18
+ public abstract RoleSearchDto toDto(Role domain);
19
+ }
@@ -0,0 +1,11 @@
1
+ package <%= packageName %>.role.repository;
2
+
3
+ import com.sixsprints.auth.repository.AbstractRoleRepository;
4
+
5
+ import <%= packageName %>.role.domain.Role;
6
+
7
+ public interface RoleRepository extends AbstractRoleRepository<Role> {
8
+
9
+ Role findByName(String name);
10
+
11
+ }
@@ -0,0 +1,36 @@
1
+ package <%= packageName %>.role.service;
2
+
3
+ import com.sixsprints.core.dto.MetaData;
4
+ import com.sixsprints.core.service.AbstractCrudService;
5
+
6
+ import <%= packageName %>.role.domain.Role;
7
+ import <%= packageName %>.role.repository.RoleRepository;
8
+
9
+ import org.springframework.stereotype.Service;
10
+
11
+ import lombok.RequiredArgsConstructor;
12
+ import com.sixsprints.auth.service.AbstractRoleService;
13
+
14
+
15
+ @Service
16
+ @RequiredArgsConstructor
17
+ public class RoleCrudService extends AbstractCrudService<Role> implements AbstractRoleService<Role> {
18
+
19
+ private final RoleRepository repository;
20
+
21
+ @Override
22
+ protected RoleRepository repository() {
23
+ return repository;
24
+ }
25
+
26
+ @Override
27
+ protected Role findDuplicate(Role domain) {
28
+ return repository.findByName(domain.getName());
29
+ }
30
+
31
+ @Override
32
+ protected MetaData<Role> metaData() {
33
+ return MetaData.<Role>builder().classType(Role.class).build();
34
+ }
35
+
36
+ }
@@ -0,0 +1,32 @@
1
+ package <%= packageName %>.user.domain;
2
+
3
+ import org.springframework.data.mongodb.core.index.Indexed;
4
+
5
+ import com.sixsprints.auth.domain.AbstractAuthenticableEntity;
6
+
7
+ import lombok.Data;
8
+ import lombok.EqualsAndHashCode;
9
+ import lombok.NoArgsConstructor;
10
+ import lombok.experimental.SuperBuilder;
11
+ import lombok.AllArgsConstructor;
12
+
13
+ @Data
14
+ @SuperBuilder
15
+ @AllArgsConstructor
16
+ @NoArgsConstructor
17
+ @EqualsAndHashCode(callSuper = true)
18
+ public class User extends AbstractAuthenticableEntity {
19
+
20
+ private String name;
21
+
22
+ @Indexed(unique = true)
23
+ private String email;
24
+
25
+ private static final long serialVersionUID = 1L;
26
+
27
+ @Override
28
+ public String authId() {
29
+ return email;
30
+ }
31
+
32
+ }
@@ -0,0 +1,42 @@
1
+ package <%= packageName %>.user.dto;
2
+
3
+ import com.sixsprints.auth.dto.Authenticable;
4
+
5
+ import io.swagger.v3.oas.annotations.media.Schema;
6
+ import jakarta.validation.constraints.Email;
7
+ import jakarta.validation.constraints.NotNull;
8
+ import jakarta.validation.constraints.Size;
9
+ import lombok.AllArgsConstructor;
10
+ import lombok.Data;
11
+ import lombok.NoArgsConstructor;
12
+ import lombok.ToString;
13
+ import lombok.experimental.SuperBuilder;
14
+
15
+ @Data
16
+ @SuperBuilder
17
+ @NoArgsConstructor
18
+ @AllArgsConstructor
19
+ @ToString(exclude = "password")
20
+ public class EmailLoginDto implements Authenticable {
21
+
22
+ @Email
23
+ @NotNull
24
+ @Size(min = 1)
25
+ @Schema(format = "email")
26
+ private String email;
27
+
28
+ @NotNull
29
+ @Size(min = 1)
30
+ @Schema(format = "password")
31
+ private String password;
32
+
33
+ @Override
34
+ public String authId() {
35
+ return email;
36
+ }
37
+
38
+ @Override
39
+ public String passcode() {
40
+ return password;
41
+ }
42
+ }
@@ -0,0 +1,31 @@
1
+ package <%= packageName %>.user.dto;
2
+
3
+ import com.sixsprints.auth.dto.ResetPasscode;
4
+
5
+ import jakarta.validation.constraints.NotNull;
6
+ import jakarta.validation.constraints.Size;
7
+ import lombok.AllArgsConstructor;
8
+ import lombok.Data;
9
+ import lombok.EqualsAndHashCode;
10
+ import lombok.NoArgsConstructor;
11
+ import lombok.ToString;
12
+ import lombok.experimental.SuperBuilder;
13
+
14
+ @Data
15
+ @SuperBuilder
16
+ @NoArgsConstructor
17
+ @AllArgsConstructor
18
+ @ToString(callSuper = true)
19
+ @EqualsAndHashCode(callSuper = true)
20
+ public class ResetEmailPasswordDto extends EmailLoginDto implements ResetPasscode {
21
+
22
+ @NotNull
23
+ @Size(min = 1)
24
+ private String otp;
25
+
26
+ @Override
27
+ public String otp() {
28
+ return otp;
29
+ }
30
+
31
+ }
@@ -0,0 +1,29 @@
1
+ package <%= packageName %>.user.dto;
2
+
3
+ import java.io.Serializable;
4
+
5
+ import jakarta.validation.constraints.Email;
6
+ import jakarta.validation.constraints.NotNull;
7
+ import jakarta.validation.constraints.Size;
8
+ import lombok.AllArgsConstructor;
9
+ import lombok.Builder;
10
+ import lombok.Data;
11
+ import lombok.NoArgsConstructor;
12
+
13
+ @Data
14
+ @Builder
15
+ @AllArgsConstructor
16
+ @NoArgsConstructor
17
+ public class UserCreateDto implements Serializable {
18
+
19
+ @NotNull
20
+ @Size(min = 1, max = 100)
21
+ private String name;
22
+
23
+ @Email
24
+ @NotNull
25
+ @Size(min = 1)
26
+ private String email;
27
+
28
+ private static final long serialVersionUID = 1L;
29
+ }
@@ -0,0 +1,25 @@
1
+ package <%= packageName %>.user.dto;
2
+
3
+ import java.io.Serializable;
4
+
5
+ import lombok.AllArgsConstructor;
6
+ import lombok.Data;
7
+ import lombok.NoArgsConstructor;
8
+ import lombok.Builder;
9
+
10
+ @Data
11
+ @Builder
12
+ @AllArgsConstructor
13
+ @NoArgsConstructor
14
+ public class UserDetailDto implements Serializable {
15
+
16
+ private String id;
17
+
18
+ private String slug;
19
+
20
+ private String name;
21
+
22
+ private String email;
23
+
24
+ private static final long serialVersionUID = 1L;
25
+ }
@@ -0,0 +1,25 @@
1
+ package <%= packageName %>.user.dto;
2
+
3
+ import java.io.Serializable;
4
+
5
+ import lombok.AllArgsConstructor;
6
+ import lombok.Builder;
7
+ import lombok.Data;
8
+ import lombok.NoArgsConstructor;
9
+
10
+ @Data
11
+ @Builder
12
+ @AllArgsConstructor
13
+ @NoArgsConstructor
14
+ public class UserSearchDto implements Serializable {
15
+
16
+ private String id;
17
+
18
+ private String slug;
19
+
20
+ private String name;
21
+
22
+ private String email;
23
+
24
+ private static final long serialVersionUID = 1L;
25
+ }
@@ -0,0 +1,37 @@
1
+ package <%= packageName %>.user.dto;
2
+
3
+ import java.io.Serializable;
4
+
5
+ import io.swagger.v3.oas.annotations.media.Schema;
6
+ import jakarta.validation.constraints.Email;
7
+ import jakarta.validation.constraints.NotNull;
8
+ import jakarta.validation.constraints.Size;
9
+ import lombok.AllArgsConstructor;
10
+ import lombok.Builder;
11
+ import lombok.Data;
12
+ import lombok.NoArgsConstructor;
13
+
14
+ @Data
15
+ @Builder
16
+ @AllArgsConstructor
17
+ @NoArgsConstructor
18
+ public class UserSignupDto implements Serializable {
19
+
20
+ @NotNull
21
+ @Size(min = 2, max = 100)
22
+ private String name;
23
+
24
+ @Email
25
+ @NotNull
26
+ @Size(min = 2, max = 100)
27
+ @Schema(format = "email")
28
+ private String email;
29
+
30
+ @NotNull
31
+ @Size(min = 8, max = 20)
32
+ @Schema(format = "password")
33
+ private String password;
34
+
35
+ private static final long serialVersionUID = 1L;
36
+
37
+ }
@@ -0,0 +1,19 @@
1
+ package <%= packageName %>.user.mapper;
2
+
3
+ import com.sixsprints.core.mapper.GenericCrudMapper;
4
+
5
+ import <%= packageName %>.user.domain.User;
6
+ import <%= packageName %>.user.dto.UserCreateDto;
7
+
8
+ import org.mapstruct.Mapper;
9
+ import org.mapstruct.ReportingPolicy;
10
+
11
+ @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
12
+ public abstract class UserCreateDtoMapper extends GenericCrudMapper<User, UserCreateDto> {
13
+
14
+ @Override
15
+ public abstract User toDomain(UserCreateDto dto);
16
+
17
+ @Override
18
+ public abstract UserCreateDto toDto(User domain);
19
+ }
@@ -0,0 +1,19 @@
1
+ package <%= packageName %>.user.mapper;
2
+
3
+ import com.sixsprints.core.mapper.GenericCrudMapper;
4
+
5
+ import <%= packageName %>.user.domain.User;
6
+ import <%= packageName %>.user.dto.UserDetailDto;
7
+
8
+ import org.mapstruct.Mapper;
9
+ import org.mapstruct.ReportingPolicy;
10
+
11
+ @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
12
+ public abstract class UserDetailDtoMapper extends GenericCrudMapper<User, UserDetailDto> {
13
+
14
+ @Override
15
+ public abstract User toDomain(UserDetailDto dto);
16
+
17
+ @Override
18
+ public abstract UserDetailDto toDto(User domain);
19
+ }
@@ -0,0 +1,19 @@
1
+ package <%= packageName %>.user.mapper;
2
+
3
+ import com.sixsprints.core.mapper.GenericCrudMapper;
4
+
5
+ import <%= packageName %>.user.domain.User;
6
+ import <%= packageName %>.user.dto.UserSearchDto;
7
+
8
+ import org.mapstruct.Mapper;
9
+ import org.mapstruct.ReportingPolicy;
10
+
11
+ @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
12
+ public abstract class UserSearchDtoMapper extends GenericCrudMapper<User, UserSearchDto> {
13
+
14
+ @Override
15
+ public abstract User toDomain(UserSearchDto dto);
16
+
17
+ @Override
18
+ public abstract UserSearchDto toDto(User domain);
19
+ }
@@ -0,0 +1,21 @@
1
+ package <%= packageName %>.user.mapper;
2
+
3
+ import org.mapstruct.Mapper;
4
+ import org.mapstruct.Mapping;
5
+ import org.mapstruct.ReportingPolicy;
6
+
7
+ import com.sixsprints.core.mapper.GenericCrudMapper;
8
+
9
+ import <%= packageName %>.user.domain.User;
10
+ import <%= packageName %>.user.dto.UserSignupDto;
11
+
12
+ @Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
13
+ public abstract class UserSignupDtoMapper extends GenericCrudMapper<User, UserSignupDto> {
14
+
15
+ @Override
16
+ public abstract User toDomain(UserSignupDto dto);
17
+
18
+ @Override
19
+ @Mapping(ignore = true, target = "password")
20
+ public abstract UserSignupDto toDto(User domain);
21
+ }
@@ -0,0 +1,10 @@
1
+ package <%= packageName %>.user.repository;
2
+
3
+ import com.sixsprints.core.repository.GenericCrudRepository;
4
+
5
+ import <%= packageName %>.user.domain.User;
6
+
7
+ public interface UserRepository extends GenericCrudRepository<User> {
8
+
9
+ abstract User findByEmail(String email);
10
+ }
@@ -0,0 +1,70 @@
1
+ package <%= packageName %>.user.service;
2
+
3
+ import org.apache.commons.lang3.StringUtils;
4
+
5
+ import com.sixsprints.auth.service.OtpService;
6
+ import com.sixsprints.auth.service.impl.AbstractAuthService;
7
+ import com.sixsprints.core.dto.MetaData;
8
+ import com.sixsprints.notification.service.NotificationService;
9
+ import org.springframework.stereotype.Service;
10
+
11
+ import <%= packageName %>.config.constants.<%= appNameTitleCase %>Constants;
12
+ import <%= packageName %>.role.domain.Role;
13
+ import <%= packageName %>.role.service.RoleCrudService;
14
+ import <%= packageName %>.user.domain.User;
15
+ import <%= packageName %>.user.dto.UserDetailDto;
16
+ import <%= packageName %>.user.dto.UserSignupDto;
17
+ import <%= packageName %>.user.mapper.UserDetailDtoMapper;
18
+ import <%= packageName %>.user.mapper.UserSignupDtoMapper;
19
+ import <%= packageName %>.user.repository.UserRepository;
20
+
21
+
22
+
23
+ @Service
24
+ public class UserCrudService extends
25
+ AbstractAuthService<User, UserSignupDto, UserDetailDto, Role> {
26
+
27
+ private final UserRepository repository;
28
+
29
+ public UserCrudService(UserRepository repository, UserSignupDtoMapper userSignupDtoMapper,
30
+ UserDetailDtoMapper userDetailDtoMapper, NotificationService notificationService,
31
+ OtpService otpService, RoleCrudService roleCrudService) {
32
+
33
+ super(userSignupDtoMapper, userDetailDtoMapper, notificationService, otpService,
34
+ roleCrudService);
35
+ this.repository = repository;
36
+ }
37
+
38
+ @Override
39
+ protected UserRepository repository() {
40
+ return repository;
41
+ }
42
+
43
+ @Override
44
+ protected User findDuplicate(User domain) {
45
+ return repository.findByEmail(domain.getEmail());
46
+ }
47
+
48
+ @Override
49
+ protected MetaData<User> metaData() {
50
+ return MetaData.<User>builder().classType(User.class).build();
51
+ }
52
+
53
+ @Override
54
+ protected User findByAuthId(String email) {
55
+ return repository.findByEmail(email);
56
+ }
57
+
58
+ @Override
59
+ protected void enhanceEntity(User user) {
60
+ super.enhanceEntity(user);
61
+ setRole(user);
62
+ }
63
+
64
+ private void setRole(User user) {
65
+ if (StringUtils.isBlank(user.getRoleSlug())) {
66
+ user.setRoleSlug(<%= appNameTitleCase %>Constants.ROLES.get(<%= appNameTitleCase %>Constants.USER_ROLE).getSlug());
67
+ }
68
+ }
69
+
70
+ }
@@ -0,0 +1,13 @@
1
+ package <%= packageName %>;
2
+
3
+ import org.junit.jupiter.api.Test;
4
+ import org.springframework.boot.test.context.SpringBootTest;
5
+
6
+ @SpringBootTest
7
+ public class <%= appNameTitleCase %>ApplicationTests {
8
+
9
+ @Test
10
+ void contextLoads() {
11
+ }
12
+
13
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "properties": [
3
+ {
4
+ "name": "email.ssl.enabled",
5
+ "type": "java.lang.String",
6
+ "description": "A description for 'email.ssl.enabled'"
7
+ },
8
+ {
9
+ "name": "email.password",
10
+ "type": "java.lang.String",
11
+ "description": "A description for 'email.password'"
12
+ },
13
+ {
14
+ "name": "email.username",
15
+ "type": "java.lang.String",
16
+ "description": "A description for 'email.username'"
17
+ },
18
+ {
19
+ "name": "email.hostname",
20
+ "type": "java.lang.String",
21
+ "description": "A description for 'email.hostname'"
22
+ },
23
+ {
24
+ "name": "email.from.address",
25
+ "type": "java.lang.String",
26
+ "description": "A description for 'email.from.address'"
27
+ },
28
+ {
29
+ "name": "email.from",
30
+ "type": "java.lang.String",
31
+ "description": "A description for 'email.from'"
32
+ }
33
+ ]
34
+ }
@@ -0,0 +1,21 @@
1
+ ## Spring
2
+ spring.application.name=<%= appName %>
3
+ server.port=8181
4
+
5
+ ## Mongo
6
+ spring.data.mongodb.uri=mongodb://localhost:27017/<%= appNameSlug %>
7
+ spring.data.mongodb.database=<%= appNameSlug %>
8
+ logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
9
+
10
+ ## Email
11
+ email.from=<%= appName %>
12
+ email.from.address=<%= appNameSlug %>@sixsprints.com
13
+ email.hostname=email-smtp.ap-south-1.amazonaws.com
14
+ email.username=xxxxxxxxxxxxxxxx
15
+ email.password=xxxxxxxxxxxxxxxx
16
+ email.ssl.enabled=true
17
+
18
+ ## AWS S3
19
+ aws.s3.access.key=xxxxxxxxxxxxxxxx
20
+ aws.s3.secret.key=xxxxxxxxxxxxxxxx
21
+ aws.s3.region=ap-south-1
@@ -0,0 +1,104 @@
1
+ import org.gradle.api.tasks.testing.logging.TestExceptionFormat
2
+ import org.gradle.api.tasks.testing.logging.TestLogEvent
3
+
4
+ buildscript {
5
+ repositories {
6
+ mavenLocal()
7
+ gradlePluginPortal()
8
+ }
9
+ dependencies {
10
+ classpath 'com.github.ben-manes:gradle-versions-plugin:+'
11
+ }
12
+ }
13
+
14
+ plugins {
15
+ id 'java'
16
+ id 'org.springframework.boot' version '<%= SPRING_BOOT_VERSION %>'
17
+ id 'io.spring.dependency-management' version '<%= SPRING_PLUGIN_VERSION %>'
18
+ id "org.springdoc.openapi-gradle-plugin" version '<%= SPRINGDOC_PLUGIN_VERSION %>'
19
+ }
20
+
21
+ apply plugin: 'com.github.ben-manes.versions'
22
+
23
+
24
+ group = '<%= groupId %>'
25
+ version = '0.0.1'
26
+
27
+ java {
28
+ toolchain {
29
+ languageVersion = JavaLanguageVersion.of(<%= JAVA_VERSION %>)
30
+ }
31
+ }
32
+
33
+ tasks.withType(JavaCompile) {
34
+ options.compilerArgs << '-parameters'
35
+ }
36
+
37
+ configurations {
38
+
39
+ }
40
+
41
+ repositories {
42
+ mavenCentral()
43
+ maven {
44
+ url = "https://jitpack.io"
45
+ }
46
+ }
47
+
48
+ dependencies {
49
+ implementation 'org.springframework.boot:spring-boot-starter-web'
50
+ implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:<%= SPRINGDOC_OPENAPI_VERSION %>'
51
+
52
+ implementation 'com.github.Six-Sprints:auth-service:<%= SIXSPRINTS_AUTH_VERSION %>'
53
+ implementation 'com.github.Six-Sprints:cloud-storage-api:<%= SIXSPRINTS_CLOUD_STORAGE_API_VERSION %>'
54
+ implementation 'net.javacrumbs.shedlock:shedlock-spring:<%= SHEDLOCK_VERSION %>'
55
+ implementation 'net.javacrumbs.shedlock:shedlock-provider-mongo:<%= SHEDLOCK_VERSION %>'
56
+
57
+ annotationProcessor 'org.mapstruct:mapstruct-processor:<%= MAPSTRUCT_VERSION %>'
58
+ annotationProcessor 'org.projectlombok:lombok'
59
+ annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:<%= LOMBOK_MAPSTRUCT_BINDING_VERSION %>'
60
+ implementation 'org.mapstruct:mapstruct:<%= MAPSTRUCT_VERSION %>'
61
+ implementation 'org.mapstruct:mapstruct-processor:<%= MAPSTRUCT_VERSION %>'
62
+ testAnnotationProcessor 'org.mapstruct:mapstruct-processor:<%= MAPSTRUCT_VERSION %>'
63
+ testAnnotationProcessor 'org.projectlombok:lombok-mapstruct-binding:<%= LOMBOK_MAPSTRUCT_BINDING_VERSION %>'
64
+ compileOnly 'org.projectlombok:lombok'
65
+ testImplementation 'org.springframework.boot:spring-boot-starter-test'
66
+ testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
67
+ }
68
+
69
+ tasks.named('test') {
70
+ useJUnitPlatform()
71
+ }
72
+
73
+ tasks.named('test') {
74
+ useJUnitPlatform()
75
+ testLogging {
76
+ events TestLogEvent.FAILED,
77
+ TestLogEvent.PASSED,
78
+ TestLogEvent.SKIPPED,
79
+ TestLogEvent.STANDARD_OUT
80
+ exceptionFormat = TestExceptionFormat.FULL
81
+ showExceptions = true
82
+ showCauses = true
83
+ showStackTraces = true
84
+ debug {
85
+ events TestLogEvent.STARTED,
86
+ TestLogEvent.FAILED,
87
+ TestLogEvent.PASSED,
88
+ TestLogEvent.SKIPPED,
89
+ TestLogEvent.STANDARD_ERROR,
90
+ TestLogEvent.STANDARD_OUT
91
+ exceptionFormat = TestExceptionFormat.FULL
92
+ }
93
+ info.events = debug.events
94
+ info.exceptionFormat = debug.exceptionFormat
95
+ afterSuite {
96
+ desc, result -> if (!desc.parent) {
97
+ def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)"
98
+ def startItem = '| ', endItem = ' |'
99
+ def repeatLength = startItem.length() + output.length() + endItem.length()
100
+ println('\n' + ('-' * repeatLength) + '\n' + startItem + output + endItem + '\n' + ('-' * repeatLength))
101
+ }
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+
3
+ # Get the directory where this script is located
4
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
5
+
6
+ # Change to the script directory and run gradlew
7
+ cd "$SCRIPT_DIR" && ./gradlew build -x test
@@ -0,0 +1,7 @@
1
+ distributionBase=GRADLE_USER_HOME
2
+ distributionPath=wrapper/dists
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip
4
+ networkTimeout=10000
5
+ validateDistributionUrl=true
6
+ zipStoreBase=GRADLE_USER_HOME
7
+ zipStorePath=wrapper/dists