/// <summary> /// Generates Go code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { string packageName = GoCodeNamer.PackageNameFromNamespace(Settings.Namespace); // If version is passed in command line then pick that, else keep it 0.0.0(to make it optional for testing). string[] version = GoCodeNamer.SDKVersionFromPackageVersion( !string.IsNullOrEmpty(Settings.PackageVersion) ? Settings.PackageVersion : "0.0.0"); // Service client var serviceClientTemplate = new ServiceClientTemplate { Model = new ServiceClientTemplateModel(serviceClient, packageName), }; await Write(serviceClientTemplate, GoCodeNamer.FormatFileName("client")); foreach (var methodGroupName in serviceClient.MethodGroups) { var groupedMethodTemplate = new MethodGroupTemplate { Model = new MethodGroupTemplateModel(serviceClient, packageName, methodGroupName), }; await Write(groupedMethodTemplate, GoCodeNamer.FormatFileName(methodGroupName.ToLowerInvariant())); } // Models var modelsTemplate = new ModelsTemplate { Model = new ModelsTemplateModel(serviceClient, packageName), }; await Write(modelsTemplate, GoCodeNamer.FormatFileName("models")); // Version var versionTemplate = new VersionTemplate { Model = new VersionTemplateModel(serviceClient, packageName, version), }; await Write(versionTemplate, GoCodeNamer.FormatFileName("version")); }
/// <summary> /// Generates Go code for service client. /// </summary> /// <param name="serviceClient"></param> /// <returns></returns> public override async Task Generate(ServiceClient serviceClient) { string packageName = GoCodeNamer.PackageNameFromNamespace(Settings.Namespace); // Service client var serviceClientTemplate = new ServiceClientTemplate { Model = new ServiceClientTemplateModel(serviceClient, packageName), }; await Write(serviceClientTemplate, GoCodeNamer.FormatFileName("client")); foreach (var methodGroupName in serviceClient.MethodGroups) { var groupedMethodTemplate = new MethodGroupTemplate { Model = new MethodGroupTemplateModel(serviceClient, packageName, methodGroupName), }; await Write(groupedMethodTemplate, GoCodeNamer.FormatFileName(methodGroupName.ToLowerInvariant())); } // Models var modelsTemplate = new ModelsTemplate { Model = new ModelsTemplateModel(serviceClient, packageName), }; await Write(modelsTemplate, GoCodeNamer.FormatFileName("models")); // Version var versionTemplate = new VersionTemplate { Model = new VersionTemplateModel(serviceClient, packageName), }; await Write(versionTemplate, GoCodeNamer.FormatFileName("version")); }