/// <summary> /// Constructs a ProKnowApi object /// </summary> /// <param name="baseUrl">The base URL to ProKnow, e.g. 'https://example.proknow.com'</param> /// <param name="credentialsFile">The path to the ProKnow credentials JSON file</param> /// <param name="lockRenewalBuffer">The number of seconds to use as a buffer when renewing a lock for a draft /// structure set</param> /// <exception cref="ProKnow.Exceptions.ProKnowException">If the credentials file could not be read or is invalid</exception> public ProKnowApi(string baseUrl, string credentialsFile, int lockRenewalBuffer = 30) { _logger = ProKnowLogging.CreateLogger(typeof(ProKnowApi).FullName); ProKnowCredentials proKnowCredentials = null; try { using (StreamReader sr = new StreamReader(credentialsFile)) { proKnowCredentials = JsonSerializer.Deserialize <ProKnowCredentials>(sr.ReadToEnd()); } } catch (DirectoryNotFoundException) { var message = $"The credentials file '{credentialsFile}' was not found."; _logger.LogError(message); throw new ProKnowException(message); } catch (FileNotFoundException) { var message = $"The credentials file '{credentialsFile}' was not found."; _logger.LogError(message); throw new ProKnowException(message); } catch (Exception) { var message = $"The credentials file '{credentialsFile}' is not valid JSON."; _logger.LogError(message); throw new ProKnowException(message); } if (proKnowCredentials.Id == null || proKnowCredentials.Secret == null) { var message = $"The 'id' and/or 'secret' in the credentials file '{credentialsFile}' are missing."; _logger.LogError(message); throw new ProKnowException(message); } ConstructorHelper(baseUrl, proKnowCredentials.Id, proKnowCredentials.Secret, lockRenewalBuffer); }
/// <summary> /// Constructs a ProKnowApi object /// </summary> /// <param name="baseUrl">The base URL to ProKnow, e.g. 'https://example.proknow.com'</param> /// <param name="credentialsId">The ID from the ProKnow credentials JSON file</param> /// <param name="credentialsSecret">The secret from the ProKnow credentials JSON file</param> /// <param name="lockRenewalBuffer">The number of seconds to use as a buffer when renewing a lock for a draft /// structure set</param> public ProKnowApi(string baseUrl, string credentialsId, string credentialsSecret, int lockRenewalBuffer = 30) { _logger = ProKnowLogging.CreateLogger(typeof(ProKnowApi).FullName); ConstructorHelper(baseUrl, credentialsId, credentialsSecret, lockRenewalBuffer); }