Class: VersiononeSdk::Client
- Inherits:
-
Object
- Object
- VersiononeSdk::Client
- Defined in:
- lib/versionone_sdk/client.rb
Constant Summary collapse
- DEFAULT_PROTOCOL =
'https'- DEFAULT_HOSTNAME =
'localhost'- DEFAULT_PORT =
443
Instance Attribute Summary collapse
-
#dTypePrefix ⇒ Object
Returns the value of attribute dTypePrefix.
-
#oFaraday ⇒ Object
Returns the value of attribute oFaraday.
-
#sInstance ⇒ Object
Returns the value of attribute sInstance.
Instance Method Summary collapse
- #getAsset(xAssetId1, xAssetId2 = nil) ⇒ Object
- #getAssetForTypeAndNumber(sAssetType = nil, sAssetNumber = nil) ⇒ Object
- #getAssetForTypeAndOid(sAssetType = nil, sAssetOid = nil) ⇒ Object
- #getAssets(sAssetType = nil, xIds = nil) ⇒ Object
- #getAssetsXml(sAssetType = nil, xIds = nil) ⇒ Object
- #getUrlForAssets(sAssetType = nil, sAssetOid = nil) ⇒ Object
- #getUrlForAssetTypeAndNumber(sAssetType = nil, sAssetNumber = nil) ⇒ Object
-
#initialize(opts = {}) ⇒ Client
constructor
A new instance of Client.
- #updateAsset(sAssetType = nil, sAssetOid = nil, sName = nil, xxValues = nil, yTagType = nil) ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Client
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/versionone_sdk/client.rb', line 15 def initialize(opts = {}) @sProtocol = opts[:protocol] || DEFAULT_PROTOCOL @sHostname = opts[:hostname] || DEFAULT_HOSTNAME @iPort = opts.key?(:port) && opts[:port] \ ? opts[:port].to_i : DEFAULT_PORT sUsername = opts[:username] || '' sPassword = opts[:password] || '' # VersionOne provides a mechanism for generating an access token sAccessToken = opts[:access_token] || '' @sInstance = opts[:instance] || '' @dTypePrefix = opts[:type_prefixes] || {'B' => 'Story', 'E' => 'Epic', 'D' => 'Defect'} @sUrl = buildUrl(@sProtocol, @sHostname, @iPort) @oFaraday = Faraday::Connection.new url: @sUrl @oFaraday.ssl.verify = opts[:ssl_verify].to_s.match(/false/i) \ ? false : true if sAccessToken.empty? @oFaraday.basic_auth(sUsername, sPassword) else # could also patch Faraday to have a method similar to basic_auth @oFaraday.headers['Authorization'] = "Bearer #{sAccessToken}" end @oUpdate = VersiononeSdk::Update.new self end |
Instance Attribute Details
#dTypePrefix ⇒ Object
Returns the value of attribute dTypePrefix.
13 14 15 |
# File 'lib/versionone_sdk/client.rb', line 13 def dTypePrefix @dTypePrefix end |
#oFaraday ⇒ Object
Returns the value of attribute oFaraday.
11 12 13 |
# File 'lib/versionone_sdk/client.rb', line 11 def oFaraday @oFaraday end |
#sInstance ⇒ Object
Returns the value of attribute sInstance.
12 13 14 |
# File 'lib/versionone_sdk/client.rb', line 12 def sInstance @sInstance end |
Instance Method Details
#getAsset(xAssetId1, xAssetId2 = nil) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/versionone_sdk/client.rb', line 39 def getAsset(xAssetId1, xAssetId2 = nil) xAssetId1.strip! if xAssetId1 =~ /^([^:]+):([0-9]+)$/ sAssetType = $1 sAssetOid = $2.to_i return self.getAssetForTypeAndOid(sAssetType, sAssetOid) elsif xAssetId1 =~ /^([a-zA-Z])-[0-9]+$/ sAssetTypeAbbr = $1.upcase sAssetType = @dTypePrefix.key?(sAssetTypeAbbr) \ ? @dTypePrefix[ sAssetTypeAbbr ] : '' xAssetId1.upcase! return self.getAssetForTypeAndNumber(sAssetType, xAssetId1) elsif !xAssetId2.nil? if xAssetId2.is_a?(String) && xAssetId2 =~ /^[0-9]+$/ xAssetId2 = xAssetId2.to_i end if xAssetId2.is_a?(Integer) if xAssetId1 =~ /^[a-zA-Z]$/ xAssetId1.upcase! sAssetTypeAbbr = xAssetId1 sAssetType = @dTypePrefix.key?(sAssetTypeAbbr) \ ? @dTypePrefix[ sAssetTypeAbbr ] : '' sAssetNumber = xAssetId1 + '-' + xAssetId2.to_s sAssetNumber.upcase! return self.getAssetForTypeAndNumber(sAssetType, sAssetNumber) elsif xAssetId1 =~ /^[a-zA-Z].+$/ return self.getAssetForTypeAndOid(xAssetId1, xAssetId2) end end end raise RuntimeError, "E_UNKNOWN_ASSET_ID [#{xAssetId1}][#{xAssetId2.to_s}]" end |
#getAssetForTypeAndNumber(sAssetType = nil, sAssetNumber = nil) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/versionone_sdk/client.rb', line 85 def getAssetForTypeAndNumber(sAssetType = nil, sAssetNumber = nil) sUrl = self.getUrlForAssetTypeAndNumber( sAssetType, sAssetNumber ) oRes = @oFaraday.get sUrl oParser = VersiononeSdk::ParserXmlAssets.new({url: @sUrl}) aDocs = oParser.getDocsForAssetsXml( oRes.body ) return aDocs[0] end |
#getAssetForTypeAndOid(sAssetType = nil, sAssetOid = nil) ⇒ Object
78 79 80 81 82 83 |
# File 'lib/versionone_sdk/client.rb', line 78 def getAssetForTypeAndOid(sAssetType = nil, sAssetOid = nil) sUrl = self.getUrlForAssets( sAssetType, sAssetOid ) oRes = @oFaraday.get sUrl oParser = VersiononeSdk::ParserXmlAssets.new({url: @sUrl}) return oParser.getDocForAssetXml( oRes.body ) end |
#getAssets(sAssetType = nil, xIds = nil) ⇒ Object
93 94 95 96 97 |
# File 'lib/versionone_sdk/client.rb', line 93 def getAssets(sAssetType = nil, xIds = nil) oRes = self.getAssetsXml(sAssetType,xIds) oParser = VersiononeSdk::ParserXmlAssets.new({url: @sUrl}) return oParser.getDocsForAssetsXml( oRes.body ) end |
#getAssetsXml(sAssetType = nil, xIds = nil) ⇒ Object
99 100 101 102 |
# File 'lib/versionone_sdk/client.rb', line 99 def getAssetsXml(sAssetType = nil, xIds = nil) sUrl = self.getUrlForAssets(sAssetType) return @oFaraday.get sUrl end |
#getUrlForAssets(sAssetType = nil, sAssetOid = nil) ⇒ Object
109 110 111 112 113 114 115 116 117 |
# File 'lib/versionone_sdk/client.rb', line 109 def getUrlForAssets(sAssetType = nil, sAssetOid = nil) aUrl = [@sUrl, @sInstance, 'rest-1.v1/Data',sAssetType] if sAssetOid.is_a?(Integer) aUrl.push sAssetOid elsif sAssetOid.kind_of?(String) && sAssetOid =~ /^[0-9]+$/ aUrl.push sAssetOid end return aUrl.join('/') end |
#getUrlForAssetTypeAndNumber(sAssetType = nil, sAssetNumber = nil) ⇒ Object
104 105 106 107 |
# File 'lib/versionone_sdk/client.rb', line 104 def getUrlForAssetTypeAndNumber(sAssetType = nil, sAssetNumber = nil) aUrl = [ @sUrl, @sInstance, 'rest-1.v1/Data',sAssetType + %Q!?where=Number="#{sAssetNumber}"!] return aUrl.join('/') end |
#updateAsset(sAssetType = nil, sAssetOid = nil, sName = nil, xxValues = nil, yTagType = nil) ⇒ Object
119 120 121 |
# File 'lib/versionone_sdk/client.rb', line 119 def updateAsset(sAssetType=nil,sAssetOid=nil,sName=nil,xxValues=nil,yTagType=nil) return @oUpdate.updateAsset(sAssetType, sAssetOid, sName, xxValues, yTagType) end |