Class: VersiononeSdk::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/versionone_sdk/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dOptions = {}) ⇒ Client

Returns a new instance of Client.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/versionone_sdk/client.rb', line 11

def initialize(dOptions={})
  iPort        = iPort.to_i if iPort.is_a?(String)
  @sProtocol   = dOptions.has_key?(:protocol) && dOptions[:protocol] \
               ? dOptions[:protocol]    : 'https'
  @sHostname   = dOptions.has_key?(:hostname) && dOptions[:hostname] \
               ? dOptions[:hostname]    : 'localhost'
  @iPort       = dOptions.has_key?(:port) && dOptions[:port] \
               ? dOptions[:port].to_i   : 443
  sUsername    = dOptions.has_key?(:username) ? dOptions[:username] : ''
  sPassword    = dOptions.has_key?(:password) ? dOptions[:password] : ''
  @sInstance   = dOptions.has_key?(:instance) ? dOptions[:instance] : ''
  @dTypePrefix = { 'B' => 'Story', 'E' => 'Epic' }
  @sUrl        = buildUrl(@sProtocol,@sHostname,@iPort)
  @oFaraday    = Faraday::Connection.new url: @sUrl
  @oFaraday.basic_auth(sUsername, sPassword)
  @oUpdate     = VersiononeSdk::Update.new(self)
end

Instance Attribute Details

#oFaradayObject

Returns the value of attribute oFaraday.



8
9
10
# File 'lib/versionone_sdk/client.rb', line 8

def oFaraday
  @oFaraday
end

#sInstanceObject

Returns the value of attribute sInstance.



9
10
11
# File 'lib/versionone_sdk/client.rb', line 9

def sInstance
  @sInstance
end

Instance Method Details

#getAsset(xAssetId1 = nil, xAssetId2 = nil) ⇒ Object

Raises:

  • (RuntimeError)


29
30
31
32
33
34
35
36
37
38
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
# File 'lib/versionone_sdk/client.rb', line 29

def getAsset(xAssetId1=nil,xAssetId2=nil)
  if !xAssetId1.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.has_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.has_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
  else
    raise RuntimeError, 'E_NO_ASSET_ID'
  end
  raise RuntimeError, "E_UNKNOWN_ASSET_ID [#{xAssetId1}][#{xAssetId2.to_s}]"
end

#getAssetForTypeAndNumber(sAssetType = nil, sAssetNumber = nil) ⇒ Object



81
82
83
84
85
86
87
# File 'lib/versionone_sdk/client.rb', line 81

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



73
74
75
76
77
78
79
# File 'lib/versionone_sdk/client.rb', line 73

def getAssetForTypeAndOid(sAssetType=nil,sAssetOid=nil)
  sUrl    = self.getUrlForAssets( sAssetType, sAssetOid )
  puts(sUrl)
  oRes    = @oFaraday.get sUrl
  oParser = VersiononeSdk::ParserXmlAssets.new({:url => @sUrl})
  aDoc    = oParser.getDocForAssetXml( oRes.body )
end

#getAssets(sAssetType = nil, xIds = nil) ⇒ Object



89
90
91
92
93
94
# File 'lib/versionone_sdk/client.rb', line 89

def getAssets(sAssetType=nil,xIds=nil)
  oRes    = self.getAssetsXml(sAssetType,xIds)
  oParser = VersiononeSdk::ParserXmlAssets.new({:url => @sUrl})
  aDocs   = oParser.getDocsForAssetsXml( oRes.body )
  return aDocs
end

#getAssetsXml(sAssetType = nil, xIds = nil) ⇒ Object



96
97
98
99
100
# File 'lib/versionone_sdk/client.rb', line 96

def getAssetsXml(sAssetType=nil,xIds=nil)
  sUrl = self.getUrlForAssets(sAssetType)
  oRes = @oFaraday.get sUrl
  return oRes
end

#getUrlForAssets(sAssetType = nil, sAssetOid = nil) ⇒ Object



108
109
110
111
112
113
114
115
116
117
# File 'lib/versionone_sdk/client.rb', line 108

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
  sUrl = aUrl.join('/')
  return sUrl
end

#getUrlForAssetTypeAndNumber(sAssetType = nil, sAssetNumber = nil) ⇒ Object



102
103
104
105
106
# File 'lib/versionone_sdk/client.rb', line 102

def getUrlForAssetTypeAndNumber(sAssetType=nil,sAssetNumber=nil)
  aUrl = [ @sUrl, @sInstance, 'rest-1.v1/Data',sAssetType + %Q!?where=Number="#{sAssetNumber}"!]
  sUrl = aUrl.join('/')
  return sUrl
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