Skip to content

Commit

Permalink
enhancement: added microServiceName/controllers files
Browse files Browse the repository at this point in the history
  • Loading branch information
mahendraintelops committed Dec 10, 2023
1 parent 6fcbbeb commit 3b6b9f2
Showing 1 changed file with 41 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,20 @@ const InfrastructureRepositoriesPath = "/Infrastructure/Repositories"
const InfrastructureRepositoriesRepositoryBaseCSFile = "/Infrastructure/Repositories/RepositoryBase.cs.tmpl"
const InfrastructureRepositoriesResourceNameRepositoryCSFile = "/Infrastructure/Repositories/ResourceNameRepository.cs.tmpl"

const ProjectNameCSProjFile = "/ProjectName.csproj.tmpl"
const ProjectNameProgramCSFile = "/Program.cs.tmpl"
const ProjectNameCSProjUSerFile = "/ProjectName.csproj.user.tmpl"
const ProjectNameAppSettingsDevelopmentFile = "/appsettings.Development.json.tmpl"
const ProjectNameAppSettingsFile = "/appsettings.json.tmpl"
// microServiceName
const MicroServiceNameCSProjFile = "/MicroServiceName/MicroServiceName.csproj.tmpl"
const MicroServiceNameProgramCSFile = "/MicroServiceName/Program.cs.tmpl"
const MicroServiceNameCSProjUSerFile = "/MicroServiceName/MicroServiceName.csproj.user.tmpl"
const MicroServiceNameAppSettingsDevelopmentFile = "/MicroServiceName/appsettings.Development.json.tmpl"
const MicroServiceNameAppSettingsFile = "/MicroServiceName/appsettings.json.tmpl"

// controllers
const ProjectNameControllersPath = "/Controllers"
const ProjectNameControllersResourceNameServiceControllerCSFile = "/Controllers/ResourceNameServiceController.cs.tmpl"
const MicroServiceNameControllersPath = "/Controllers"
const MicroServiceNameControllersResourceNameServiceControllerCSFile = "/MicroServiceName/Controllers/ResourceNameServiceController.cs.tmpl"

// properties
const ProjectNamePropertiesPath = "/Properties"
const ProjectNamePropertiesLaunchSettingsFile = "/Properties/launchSettings.json.tmpl"
const MicroServiceNamePropertiesPath = "/Properties"
const MicroServiceNamePropertiesLaunchSettingsFile = "/MicroServiceName/Properties/launchSettings.json.tmpl"

const TestsPath = "/Tests"
const TestsApplicationTestsCSProjFile = "/Tests/Application.Tests/Application.Tests.csproj.tmpl"
Expand Down Expand Up @@ -192,6 +193,11 @@ func NewCopier(gitPlatformURL, gitPlatformUserName, gitRepositoryName, nodeName,
}
}

func getMicroServiceName(name string) string {
splitted := strings.Split(name, "/")
return splitted[len(splitted)-1]
}

// createRestServerDirectories creates rest server directories.
func (c *Copier) createRestServerDirectories() error {
applicationDirectory := c.NodeDirectoryName + ApplicationPath
Expand Down Expand Up @@ -278,19 +284,18 @@ func (c *Copier) createRestServerDirectories() error {
return err
}

Check warning on line 285 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L283-L285

Added lines #L283 - L285 were not covered by tests

splitted := strings.Split(c.NodeDirectoryName, "/")
projectNameDirectory := c.NodeDirectoryName + "/" + splitted[len(splitted)-1]
projectNameControllersDirectory := projectNameDirectory + ProjectNameControllersPath
projectNamePropertiesDirectory := projectNameDirectory + ProjectNamePropertiesPath
if err := utils.CreateDirectories(projectNameDirectory); err != nil {
microServiceNameDirectory := c.NodeDirectoryName + "/" + getMicroServiceName(c.NodeDirectoryName)
microServiceNameControllersDirectory := microServiceNameDirectory + MicroServiceNameControllersPath
microServiceNamePropertiesDirectory := microServiceNameDirectory + MicroServiceNamePropertiesPath
if err := utils.CreateDirectories(microServiceNameDirectory); err != nil {
log.Errorf("error creating project name directory: %v", err)
return err
}

Check warning on line 293 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L291-L293

Added lines #L291 - L293 were not covered by tests
if err := utils.CreateDirectories(projectNameControllersDirectory); err != nil {
if err := utils.CreateDirectories(microServiceNameControllersDirectory); err != nil {
log.Errorf("error creating project name controllers directory: %v", err)
return err
}

Check warning on line 297 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L295-L297

Added lines #L295 - L297 were not covered by tests
if err := utils.CreateDirectories(projectNamePropertiesDirectory); err != nil {
if err := utils.CreateDirectories(microServiceNamePropertiesDirectory); err != nil {
log.Errorf("error creating project name properties directory: %v", err)
return err
}

Check warning on line 301 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L299-L301

Added lines #L299 - L301 were not covered by tests
Expand Down Expand Up @@ -339,6 +344,13 @@ func (c *Copier) copyRestServerResourceFiles(resource *corenode.Resource) error
return err
}

Check warning on line 345 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L343-L345

Added lines #L343 - L345 were not covered by tests

// add files for MicroServiceName
err = c.addMicroServiceNameRelatedDirectoriesAndFiles(resource, filePaths)
if err != nil {
log.Errorf("error adding project name related directories and files: %v", err)
return err
}

Check warning on line 352 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L350-L352

Added lines #L350 - L352 were not covered by tests

// add resource-specific data to map in c needed for templates.
err = c.addResourceSpecificTemplateData(resource)
if err != nil {
Expand Down Expand Up @@ -552,6 +564,19 @@ func (c *Copier) addInfrastructureRelatedDirectoriesAndFiles(resource *corenode.
return nil
}

func (c *Copier) addMicroServiceNameRelatedDirectoriesAndFiles(resource *corenode.Resource, filePaths *[]*string) error {
var err error
// copy MicroServiceName/Controllers/ResourceNameServiceController.cs
targetMicroServiceNameControllersResourceNameServiceControllerFileName := c.NodeDirectoryName + "/" + getMicroServiceName(c.NodeDirectoryName) + MicroServiceNameControllersPath + "/" + resource.Name + "ServiceController.cs"
_, err = utils.CopyFile(targetMicroServiceNameControllersResourceNameServiceControllerFileName, c.TemplatesRootPath+MicroServiceNameControllersResourceNameServiceControllerCSFile)
if err != nil {
log.Errorf("error copying MicroServiceName controllers resource name service controller file: %v", err)
return err
}

Check warning on line 575 in internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go

View check run for this annotation

Codecov / codecov/patch

internal/languages/dotnet/frameworks/dotnet-clean-architecture/copier.go#L573-L575

Added lines #L573 - L575 were not covered by tests
*filePaths = append(*filePaths, &targetMicroServiceNameControllersResourceNameServiceControllerFileName)
return nil
}

func (c *Copier) addResourceSpecificTemplateData(resource *corenode.Resource) error {
// make every field public by making its first character capital.
fields := map[string]string{}
Expand Down

0 comments on commit 3b6b9f2

Please sign in to comment.