| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | using System; |
| | using System.IO; |
| |
|
| | namespace DiscoveryDocPatcher |
| | { |
| |
|
| | class Program |
| | { |
| | static int Main(string[] args) |
| | { |
| | try |
| | { |
| | string discoveryDocPath = args[0]; |
| |
|
| | PatchDirectory(discoveryDocPath); |
| |
|
| | return 0; |
| | } |
| | catch (Exception e) |
| | { |
| | Console.WriteLine(e); |
| | return 1; |
| | } |
| | } |
| |
|
| | static void PatchDirectory(string rootPath) |
| | { |
| | var patcher = IfFileExists(() => Patcher.Load(Path.Combine(rootPath, "admin.directory_v1.json"))); |
| | if (patcher is null) |
| | { |
| | return; |
| | } |
| | |
| | patcher.FromAnyToTypedArray("schemas.User.properties.addresses", "UserAddress"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.emails", "UserEmail"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.externalIds", "UserExternalId"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.ims", "UserIm"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.organizations", "UserOrganization"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.phones", "UserPhone"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.relations", "UserRelation"); |
| | patcher.FromAnyToTypedArray("schemas.User.properties.websites", "UserWebsite"); |
| | patcher.FromAnyToTyped("schemas.Aliases.properties.aliases.items", "Alias"); |
| | patcher.SaveWithBackup(); |
| |
|
| | } |
| |
|
| | static T IfFileExists<T>(Func<T> fn) |
| | { |
| | try |
| | { |
| | return fn(); |
| | } |
| | catch (FileNotFoundException) |
| | { |
| | return default; |
| | } |
| | } |
| | } |
| | } |
| |
|