diff --git a/docs/docs.go b/docs/docs.go index 1f5c0a0a..40079ef9 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -634,13 +634,17 @@ const docTemplate = `{ "application/did+json", "application/did+ld+json", "application/ld+json", - "application/json" + "application/json", + "application/did", + "text/plain" ], "x-enum-varnames": [ "DIDJSON", "DIDJSONLD", "JSONLD", - "JSON" + "JSON", + "DIDRES", + "TEXT" ] }, "types.DereferencedDidVersionsList": { @@ -712,7 +716,7 @@ const docTemplate = `{ "$ref": "#/definitions/types.ContentType" } ], - "example": "application/did+ld+json" + "example": "application/ld+json" }, "did": { "$ref": "#/definitions/types.DidProperties" @@ -916,7 +920,7 @@ const docTemplate = `{ "$ref": "#/definitions/types.ContentType" } ], - "example": "application/did+ld+json" + "example": "application/ld+json" }, "did": { "$ref": "#/definitions/types.DidProperties" @@ -930,9 +934,6 @@ const docTemplate = `{ } } }, - "types.ResolutionResourceMetadata": { - "type": "object" - }, "types.ResourceDereferencing": { "type": "object", "properties": { @@ -941,7 +942,7 @@ const docTemplate = `{ "example": "https://w3id.org/did-resolution/v1" }, "contentMetadata": { - "$ref": "#/definitions/types.ResolutionResourceMetadata" + "$ref": "#/definitions/types.DereferencedResource" }, "contentStream": {}, "dereferencingMetadata": { diff --git a/docs/swagger.json b/docs/swagger.json index b97970dc..e2a252ea 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -631,13 +631,17 @@ "application/did+json", "application/did+ld+json", "application/ld+json", - "application/json" + "application/json", + "application/did", + "text/plain" ], "x-enum-varnames": [ "DIDJSON", "DIDJSONLD", "JSONLD", - "JSON" + "JSON", + "DIDRES", + "TEXT" ] }, "types.DereferencedDidVersionsList": { @@ -709,7 +713,7 @@ "$ref": "#/definitions/types.ContentType" } ], - "example": "application/did+ld+json" + "example": "application/ld+json" }, "did": { "$ref": "#/definitions/types.DidProperties" @@ -913,7 +917,7 @@ "$ref": "#/definitions/types.ContentType" } ], - "example": "application/did+ld+json" + "example": "application/ld+json" }, "did": { "$ref": "#/definitions/types.DidProperties" @@ -927,9 +931,6 @@ } } }, - "types.ResolutionResourceMetadata": { - "type": "object" - }, "types.ResourceDereferencing": { "type": "object", "properties": { @@ -938,7 +939,7 @@ "example": "https://w3id.org/did-resolution/v1" }, "contentMetadata": { - "$ref": "#/definitions/types.ResolutionResourceMetadata" + "$ref": "#/definitions/types.DereferencedResource" }, "contentStream": {}, "dereferencingMetadata": { diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 477cca10..13a39779 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -6,12 +6,16 @@ definitions: - application/did+ld+json - application/ld+json - application/json + - application/did + - text/plain type: string x-enum-varnames: - DIDJSON - DIDJSONLD - JSONLD - JSON + - DIDRES + - TEXT types.DereferencedDidVersionsList: properties: versions: @@ -60,7 +64,7 @@ definitions: contentType: allOf: - $ref: '#/definitions/types.ContentType' - example: application/did+ld+json + example: application/ld+json did: $ref: '#/definitions/types.DidProperties' error: @@ -196,7 +200,7 @@ definitions: contentType: allOf: - $ref: '#/definitions/types.ContentType' - example: application/did+ld+json + example: application/ld+json did: $ref: '#/definitions/types.DidProperties' error: @@ -205,15 +209,13 @@ definitions: example: "2021-09-01T12:00:00Z" type: string type: object - types.ResolutionResourceMetadata: - type: object types.ResourceDereferencing: properties: '@context': example: https://w3id.org/did-resolution/v1 type: string contentMetadata: - $ref: '#/definitions/types.ResolutionResourceMetadata' + $ref: '#/definitions/types.DereferencedResource' contentStream: {} dereferencingMetadata: $ref: '#/definitions/types.DereferencingMetadata' diff --git a/go.mod b/go.mod index e235fedb..d406d812 100644 --- a/go.mod +++ b/go.mod @@ -6,18 +6,19 @@ toolchain go1.23.6 require ( github.com/cheqd/cheqd-node/api/v2 v2.3.4-develop.1 - github.com/go-resty/resty/v2 v2.13.1 + github.com/go-resty/resty/v2 v2.16.5 github.com/google/uuid v1.6.0 - github.com/labstack/echo/v4 v4.12.0 + github.com/labstack/echo/v4 v4.13.3 github.com/lestrrat-go/jwx v1.2.30 github.com/mr-tron/base58 v1.2.0 github.com/multiformats/go-multibase v0.2.0 - github.com/onsi/ginkgo/v2 v2.22.1 + github.com/onsi/ginkgo/v2 v2.22.2 github.com/onsi/gomega v1.36.2 github.com/rs/zerolog v1.32.0 github.com/spf13/viper v1.19.0 github.com/swaggo/echo-swagger v1.4.1 - github.com/swaggo/swag v1.16.3 + github.com/swaggo/swag v1.16.4 + github.com/timewasted/go-accept-headers v0.0.0-20130320203746-c78f304b1b09 google.golang.org/grpc v1.65.0 google.golang.org/protobuf v1.36.1 ) @@ -37,7 +38,6 @@ require ( github.com/go-openapi/swag v0.22.3 // indirect github.com/go-task/slim-sprig/v3 v3.0.0 // indirect github.com/goccy/go-json v0.10.3 // indirect - github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect github.com/hashicorp/hcl v1.0.0 // indirect @@ -64,18 +64,17 @@ require ( github.com/spf13/afero v1.11.0 // indirect github.com/spf13/cast v1.7.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.10.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/swaggo/files/v2 v2.0.0 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/crypto v0.31.0 // indirect + golang.org/x/crypto v0.32.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/sys v0.28.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sys v0.29.0 // indirect golang.org/x/text v0.21.0 // indirect - golang.org/x/time v0.5.0 // indirect + golang.org/x/time v0.8.0 // indirect golang.org/x/tools v0.28.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 // indirect diff --git a/go.sum b/go.sum index e2738fc1..a193f45e 100644 --- a/go.sum +++ b/go.sum @@ -37,15 +37,13 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.22.3 h1:yMBqmnQ0gyZvEb/+KzuWZOXgllrXT4SADYbvDaXHv/g= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-resty/resty/v2 v2.13.1 h1:x+LHXBI2nMB1vqndymf26quycC4aggYJ7DECYbiz03g= -github.com/go-resty/resty/v2 v2.13.1/go.mod h1:GznXlLxkq6Nh4sU59rPmUw3VtgpO3aS96ORAI6Q7d+0= +github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM= +github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= -github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg= @@ -64,8 +62,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/labstack/echo/v4 v4.12.0 h1:IKpw49IMryVB2p1a4dzwlhP1O2Tf2E0Ir/450lH+kI0= -github.com/labstack/echo/v4 v4.12.0/go.mod h1:UP9Cr2DJXbOK3Kr9ONYzNowSh7HP0aG0ShAyycHSJvM= +github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= +github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= @@ -105,8 +103,8 @@ github.com/multiformats/go-base36 v0.1.0/go.mod h1:kFGE83c6s80PklsHO9sRn2NCoffoR github.com/multiformats/go-multibase v0.2.0 h1:isdYCVLvksgWlMW9OZRYJEa9pZETFivncJHmHnnd87g= github.com/multiformats/go-multibase v0.2.0/go.mod h1:bFBZX4lKCA/2lyOFSAoKH5SS6oPyjtnzK/XTFDPkNuk= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/onsi/ginkgo/v2 v2.22.1 h1:QW7tbJAUDyVDVOM5dFa7qaybo+CRfR7bemlQUN6Z8aM= -github.com/onsi/ginkgo/v2 v2.22.1/go.mod h1:S6aTpoRsSq2cZOd+pssHAlKW/Q/jZt6cPrPlnj4a1xM= +github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU= +github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk= github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8= github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY= github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= @@ -154,79 +152,37 @@ github.com/swaggo/echo-swagger v1.4.1 h1:Yf0uPaJWp1uRtDloZALyLnvdBeoEL5Kc7DtnjzO github.com/swaggo/echo-swagger v1.4.1/go.mod h1:C8bSi+9yH2FLZsnhqMZLIZddpUxZdBYuNHbtaS1Hljc= github.com/swaggo/files/v2 v2.0.0 h1:hmAt8Dkynw7Ssz46F6pn8ok6YmGZqHSVLZ+HQM7i0kw= github.com/swaggo/files/v2 v2.0.0/go.mod h1:24kk2Y9NYEJ5lHuCra6iVwkMjIekMCaFq/0JQj66kyM= -github.com/swaggo/swag v1.16.3 h1:PnCYjPCah8FK4I26l2F/KQ4yz3sILcVUN3cTlBFA9Pg= -github.com/swaggo/swag v1.16.3/go.mod h1:DImHIuOFXKpMFAQjcC7FG4m3Dg4+QuUgUzJmKjI/gRk= +github.com/swaggo/swag v1.16.4 h1:clWJtd9LStiG3VeijiCfOVODP6VpHtKdQy9ELFG3s1A= +github.com/swaggo/swag v1.16.4/go.mod h1:VBsHJRsDvfYvqoiMKnsdwhNV9LEMHgEDZcyVYX0sxPg= +github.com/timewasted/go-accept-headers v0.0.0-20130320203746-c78f304b1b09 h1:QVxbx5l/0pzciWYOynixQMtUhPYC3YKD6EcUlOsgGqw= +github.com/timewasted/go-accept-headers v0.0.0-20130320203746-c78f304b1b09/go.mod h1:Uy/Rnv5WKuOO+PuDhuYLEpUiiKIZtss3z519uk67aF0= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/multierr v1.10.0 h1:S0h4aNzvfcFsC3dRF1jLoaov7oRaKqRGC/pUEJ2yvPQ= go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= -golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= -golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= -golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I= -golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= -golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= -golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/time v0.8.0 h1:9i3RxcPv3PZnitoVGMPDKZSq1xW1gK1Xy3ArNOGZfEg= +golang.org/x/time v0.8.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8= golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3 h1:QW9+G6Fir4VcRXVH8x3LilNAb6cxBGLa6+GM4hRwexE= google.golang.org/genproto/googleapis/api v0.0.0-20240610135401-a8a62080eff3/go.mod h1:kdrSS/OiLkPrNUpzD4aHgCq2rVuC/YRxok32HXZ4vRE= google.golang.org/genproto/googleapis/rpc v0.0.0-20240709173604-40e1e62336c5 h1:SbSDUWW1PAO24TNpLdeheoYPd7kllICcLU52x6eD4kQ= diff --git a/package-lock.json b/package-lock.json index 71ad3fcc..0af7d446 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "conventional-changelog-conventionalcommits": "^8.0.0", - "semantic-release": "^24.2.2" + "semantic-release": "^24.2.3" }, "engines": { "node": ">=20.0.0" @@ -103,16 +103,16 @@ } }, "node_modules/@octokit/core": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.3.tgz", - "integrity": "sha512-z+j7DixNnfpdToYsOutStDgeRzJSMnbj8T1C/oQjB6Aa+kRfNjs/Fn7W6c8bmlt6mfy3FkgeKBRnDjxQow5dow==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-6.1.4.tgz", + "integrity": "sha512-lAS9k7d6I0MPN+gb9bKDt7X8SdxknYqAMh44S5L+lNqIN2NuV8nvv3g8rPp7MuRxcOpxpUIATWprO0C34a8Qmg==", "dev": true, "license": "MIT", "dependencies": { "@octokit/auth-token": "^5.0.0", "@octokit/graphql": "^8.1.2", - "@octokit/request": "^9.1.4", - "@octokit/request-error": "^6.1.6", + "@octokit/request": "^9.2.1", + "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2", "before-after-hook": "^3.0.2", "universal-user-agent": "^7.0.0" @@ -122,9 +122,9 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz", - "integrity": "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==", + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.3.tgz", + "integrity": "sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA==", "dev": true, "license": "MIT", "dependencies": { @@ -136,13 +136,13 @@ } }, "node_modules/@octokit/graphql": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.0.tgz", - "integrity": "sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ==", + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.2.1.tgz", + "integrity": "sha512-n57hXtOoHrhwTWdvhVkdJHdhTv0JstjDbDRhJfwIRNfFqmSo1DaK/mD2syoNUoLCyqSjBpGAKOG0BuwF392slw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/request": "^9.1.4", + "@octokit/request": "^9.2.2", "@octokit/types": "^13.8.0", "universal-user-agent": "^7.0.0" }, @@ -158,9 +158,9 @@ "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "11.4.0", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.0.tgz", - "integrity": "sha512-ttpGck5AYWkwMkMazNCZMqxKqIq1fJBNxBfsFwwfyYKTf914jKkLF0POMS3YkPBwp5g1c2Y4L79gDz01GhSr1g==", + "version": "11.4.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.2.tgz", + "integrity": "sha512-BXJ7XPCTDXFF+wxcg/zscfgw2O/iDPtNSkwwR1W1W5c4Mb3zav/M2XvxQ23nVmKj7jpweB4g8viMeCQdm7LMVA==", "dev": true, "license": "MIT", "dependencies": { @@ -174,13 +174,13 @@ } }, "node_modules/@octokit/plugin-retry": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.3.tgz", - "integrity": "sha512-8nKOXvYWnzv89gSyIvgFHmCBAxfQAOPRlkacUHL9r5oWtp5Whxl8Skb2n3ACZd+X6cYijD6uvmrQuPH/UCL5zQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/@octokit/plugin-retry/-/plugin-retry-7.1.4.tgz", + "integrity": "sha512-7AIP4p9TttKN7ctygG4BtR7rrB0anZqoU9ThXFk8nETqIfvgPUANTSYHqWYknK7W3isw59LpZeLI8pcEwiJdRg==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/request-error": "^6.1.6", + "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2", "bottleneck": "^2.15.3" }, @@ -209,14 +209,14 @@ } }, "node_modules/@octokit/request": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.0.tgz", - "integrity": "sha512-kXLfcxhC4ozCnAXy2ff+cSxpcF0A1UqxjvYMqNuPIeOAzJbVWQ+dy5G2fTylofB/gTbObT8O6JORab+5XtA1Kw==", + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.2.tgz", + "integrity": "sha512-dZl0ZHx6gOQGcffgm1/Sf6JfEpmh34v3Af2Uci02vzUYz6qEN6zepoRtmybWXIGXFIK8K9ylE3b+duCWqhArtg==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/endpoint": "^10.0.0", - "@octokit/request-error": "^6.0.1", + "@octokit/endpoint": "^10.1.3", + "@octokit/request-error": "^6.1.7", "@octokit/types": "^13.6.2", "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" @@ -226,9 +226,9 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz", - "integrity": "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==", + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.7.tgz", + "integrity": "sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g==", "dev": true, "license": "MIT", "dependencies": { @@ -734,13 +734,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true, - "license": "MIT" - }, "node_modules/agent-base": { "version": "7.1.3", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", @@ -1088,13 +1081,12 @@ } }, "node_modules/conventional-changelog-writer": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.0.tgz", - "integrity": "sha512-TQcoYGRatlAnT2qEWDON/XSfnVG38JzA7E0wcGScu7RElQBkg9WWgZd1peCWFcWDh1xfb2CfsrcvOn1bbSzztA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-8.0.1.tgz", + "integrity": "sha512-hlqcy3xHred2gyYg/zXSMXraY2mjAYYo0msUCpK+BGyaVJMFCKWVXPIHiaacGO2GGp13kvHWXFhYmxT4QQqW3Q==", "dev": true, "license": "MIT", "dependencies": { - "@types/semver": "^7.5.5", "conventional-commits-filter": "^5.0.0", "handlebars": "^4.7.7", "meow": "^13.0.0", @@ -1118,9 +1110,9 @@ } }, "node_modules/conventional-commits-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.0.0.tgz", - "integrity": "sha512-TbsINLp48XeMXR8EvGjTnKGsZqBemisPoyWESlpRyR8lif0lcwzqz+NMtYSj1ooF/WYjSuu7wX0CtdeeMEQAmA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-6.1.0.tgz", + "integrity": "sha512-5nxDo7TwKB5InYBl4ZC//1g9GRwB/F3TXOGR9hgUjMGfvSP4Vu5NkpNro2+1+TIEy1vwxApl5ircECr2ri5JIw==", "dev": true, "license": "MIT", "dependencies": { @@ -5777,9 +5769,9 @@ "license": "MIT" }, "node_modules/semantic-release": { - "version": "24.2.2", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.2.tgz", - "integrity": "sha512-f1PLgDKbSrZ1i1jFgHO/qJavv0SSZgahJdusPH0eUkWXcm0qYHAr1qFFC69ELYVCPzLUd5UZJuhEaQP/QOd1jw==", + "version": "24.2.3", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-24.2.3.tgz", + "integrity": "sha512-KRhQG9cUazPavJiJEFIJ3XAMjgfd0fcK3B+T26qOl8L0UG5aZUjeRfREO0KM5InGtYwxqiiytkJrbcYoLDEv0A==", "dev": true, "license": "MIT", "dependencies": { @@ -6560,9 +6552,9 @@ } }, "node_modules/type-fest": { - "version": "4.34.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.34.1.tgz", - "integrity": "sha512-6kSc32kT0rbwxD6QL1CYe8IqdzN/J/ILMrNK+HMQCKH3insCDRY/3ITb0vcBss0a3t72fzh2YSzj8ko1HgwT3g==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", + "integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { diff --git a/package.json b/package.json index 74e4b0bb..7e8e833c 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "@semantic-release/commit-analyzer": "^13.0.1", "@semantic-release/git": "^10.0.1", "conventional-changelog-conventionalcommits": "^8.0.0", - "semantic-release": "^24.2.2" + "semantic-release": "^24.2.3" }, "engines": { "node": ">=20.0.0" diff --git a/services/diddoc/diddoc_all_version_metadata.go b/services/diddoc/diddoc_all_version_metadata.go index de63b652..b64d5528 100644 --- a/services/diddoc/diddoc_all_version_metadata.go +++ b/services/diddoc/diddoc_all_version_metadata.go @@ -13,7 +13,7 @@ type DIDDocAllVersionMetadataRequestService struct { } func (dd *DIDDocAllVersionMetadataRequestService) Setup(c services.ResolverContext) error { - dd.IsDereferencing = true + dd.IsDereferencing = false return nil } diff --git a/services/diddoc/diddoc_fragment.go b/services/diddoc/diddoc_fragment.go index e3da4fa4..4c10dd94 100644 --- a/services/diddoc/diddoc_fragment.go +++ b/services/diddoc/diddoc_fragment.go @@ -13,6 +13,10 @@ type FragmentDIDDocRequestService struct { func (dd *FragmentDIDDocRequestService) Setup(c services.ResolverContext) error { dd.IsDereferencing = true + split := strings.Split(c.Param("did"), "#") + if len(split) == 2 { + dd.Fragment = split[1] + } return nil } @@ -25,11 +29,6 @@ func (dd *FragmentDIDDocRequestService) SpecificValidation(c services.ResolverCo } func (dd *FragmentDIDDocRequestService) SpecificPrepare(c services.ResolverContext) error { - split := strings.Split(c.Param("did"), "#") - - if len(split) == 2 { - dd.Fragment = split[1] - } return nil } diff --git a/services/diddoc/diddoc_only.go b/services/diddoc/diddoc_only.go new file mode 100644 index 00000000..0f9958b9 --- /dev/null +++ b/services/diddoc/diddoc_only.go @@ -0,0 +1,43 @@ +package diddoc + +import ( + "errors" + "net/http" + "strings" + + "github.com/cheqd/did-resolver/services" + "github.com/cheqd/did-resolver/types" +) + +type OnlyDIDDocRequestService struct { + services.BaseRequestService + ResourceQuery string +} + +func (dd *OnlyDIDDocRequestService) Setup(c services.ResolverContext) error { + dd.IsDereferencing = false + return nil +} + +func (dd *OnlyDIDDocRequestService) SpecificValidation(c services.ResolverContext) error { + lowerQuery := strings.ToLower(dd.ResourceQuery) + if lowerQuery != "true" && lowerQuery != "false" && lowerQuery != "default" { + err := errors.New("invalid value for ResourceQuery: must be 'true' or 'false' or 'default'") + return types.NewInternalError(dd.GetDid(), dd.GetContentType(), err, dd.IsDereferencing) + } + return nil +} + +func (dd *OnlyDIDDocRequestService) SpecificPrepare(c services.ResolverContext) error { + return nil +} + +func (dd OnlyDIDDocRequestService) Respond(c services.ResolverContext) error { + _result := dd.Result.(*types.DidResolution) + if dd.ResourceQuery == "false" { + _result.Metadata.Resources = nil + } else if dd.ResourceQuery == "default" { + _result.Metadata = types.ResolutionDidDocMetadata{} + } + return c.JSONPretty(http.StatusOK, _result, " ") +} diff --git a/services/diddoc/diddoc_query.go b/services/diddoc/diddoc_query.go index 1ea68203..5d21b521 100644 --- a/services/diddoc/diddoc_query.go +++ b/services/diddoc/diddoc_query.go @@ -10,6 +10,7 @@ import ( resourceQueries "github.com/cheqd/did-resolver/services/diddoc/queries/resources" "github.com/cheqd/did-resolver/types" "github.com/cheqd/did-resolver/utils" + "github.com/rs/zerolog/log" ) type QueryDIDDocRequestService struct { @@ -35,6 +36,7 @@ func (dd *QueryDIDDocRequestService) SpecificPrepare(c services.ResolverContext) func (dd *QueryDIDDocRequestService) SpecificValidation(c services.ResolverContext) error { _, err := url.QueryUnescape(dd.GetDid()) if err != nil { + log.Debug().Msg(err.Error()) return types.NewInvalidDidUrlError(dd.GetDid(), dd.RequestedContentType, err, dd.IsDereferencing) } @@ -90,6 +92,7 @@ func (dd *QueryDIDDocRequestService) SpecificValidation(c services.ResolverConte if versionTime != "" { _, err := utils.ParseFromStringTimeToGoTime(versionTime) if err != nil { + log.Debug().Msg(err.Error()) return types.NewInvalidDidUrlError(dd.GetDid(), dd.GetContentType(), err, dd.IsDereferencing) } } @@ -98,6 +101,7 @@ func (dd *QueryDIDDocRequestService) SpecificValidation(c services.ResolverConte if resourceVersionTime != "" { _, err := utils.ParseFromStringTimeToGoTime(resourceVersionTime) if err != nil { + log.Debug().Msg(err.Error()) return types.NewInvalidDidUrlError(dd.GetDid(), dd.GetContentType(), err, dd.IsDereferencing) } } diff --git a/services/diddoc/diddoc_resource_dereferencing.go b/services/diddoc/diddoc_resource_dereferencing.go new file mode 100644 index 00000000..89caf6f0 --- /dev/null +++ b/services/diddoc/diddoc_resource_dereferencing.go @@ -0,0 +1,47 @@ +package diddoc + +import ( + "net/http" + + "github.com/cheqd/did-resolver/migrations" + "github.com/cheqd/did-resolver/services" + "github.com/cheqd/did-resolver/types" +) + +type DIDDocResourceDereferencingService struct { + services.BaseRequestService + Profile string +} + +func (dr *DIDDocResourceDereferencingService) Setup(c services.ResolverContext) error { + dr.IsDereferencing = false + return nil +} + +func (dr *DIDDocResourceDereferencingService) SpecificPrepare(c services.ResolverContext) error { + return nil +} + +func (dr DIDDocResourceDereferencingService) Redirect(c services.ResolverContext) error { + migratedDid := migrations.MigrateDID(dr.GetDid()) + + path := types.RESOLVER_PATH + migratedDid + types.DID_METADATA + return c.Redirect(http.StatusMovedPermanently, path) +} + +func (dr *DIDDocResourceDereferencingService) SpecificValidation(c services.ResolverContext) error { + // We only allow one query parameter + if len(dr.Queries) > 1 { + return types.NewInvalidDidUrlError(dr.GetDid(), dr.RequestedContentType, nil, dr.IsDereferencing) + } + return nil +} + +func (dr *DIDDocResourceDereferencingService) Query(c services.ResolverContext) error { + resolution, err := c.ResourceService.ResolveCollectionResources(dr.GetDid(), dr.GetContentType()) + if err != nil { + err.IsDereferencing = false + return err + } + return dr.SetResponse(resolution) +} diff --git a/services/diddoc/diddoc_version_metadata.go b/services/diddoc/diddoc_version_metadata.go index 68c41ffb..92327abe 100644 --- a/services/diddoc/diddoc_version_metadata.go +++ b/services/diddoc/diddoc_version_metadata.go @@ -14,7 +14,7 @@ type DIDDocVersionMetadataRequestService struct { } func (dd *DIDDocVersionMetadataRequestService) Setup(c services.ResolverContext) error { - dd.IsDereferencing = true + dd.IsDereferencing = false return nil } diff --git a/services/diddoc/echo_handlers.go b/services/diddoc/echo_handlers.go index 818cca10..94dbffd9 100644 --- a/services/diddoc/echo_handlers.go +++ b/services/diddoc/echo_handlers.go @@ -7,6 +7,7 @@ import ( "github.com/cheqd/did-resolver/services" "github.com/cheqd/did-resolver/types" "github.com/labstack/echo/v4" + "github.com/rs/zerolog/log" ) // DidDocEchoHandler godoc @@ -42,18 +43,43 @@ import ( // // We cannot add several responses here because of https://github.com/swaggo/swag/issues/815 func DidDocEchoHandler(c echo.Context) error { - // ToDo: Make fragment detection better - isFragment := len(strings.Split(c.Param("did"), "#")) > 1 - isQuery := len(c.Request().URL.Query()) > 0 - isFullDidDoc := !isQuery && !isFragment + // Get Accept header + acceptHeader := c.Request().Header.Get(echo.HeaderAccept) + requestedContentType, profile := services.GetPriorityContentType(acceptHeader, false) + didParam := c.Param("did") + queryParams := c.Request().URL.Query() + + if !requestedContentType.IsSupported() { + return types.NewRepresentationNotSupportedError(didParam, requestedContentType, nil, false) + } + + log.Debug().Msgf("requestedContentType: %v, profile: %v", requestedContentType, profile) + // Detect fragment in DID and the presence of query parameters + isFragment := strings.Contains(didParam, "#") + isQuery := len(queryParams) > 0 + isSingleQuery := len(queryParams) == 1 + resourceQuery := c.QueryParam(types.ResourceMetadata) != "" + metadataQuery := c.QueryParam(types.Metadata) == "true" switch { - case isFullDidDoc: - return services.EchoWrapHandler(&FullDIDDocRequestService{})(c) + // If Fragment is present, then we call FragmentDIDDocRequestService case isFragment: return services.EchoWrapHandler(&FragmentDIDDocRequestService{})(c) + // If there is only one query parameter and that query is 'metadata' + case isSingleQuery && metadataQuery: + return services.EchoWrapHandler(&DIDDocResourceDereferencingService{Profile: profile})(c) + // If there is only one query parameter and that query is 'resourceMetadata' + case isSingleQuery && resourceQuery: + return services.EchoWrapHandler(&OnlyDIDDocRequestService{ResourceQuery: c.QueryParam(types.ResourceMetadata)})(c) + // This case is for all other queries case isQuery: return services.EchoWrapHandler(&QueryDIDDocRequestService{})(c) + // If there are no query parameters, and contentType matches JSON or JSONLD, then we call FullDIDDocRequestService + case requestedContentType == types.JSON || (requestedContentType == types.JSONLD && profile == types.W3IDDIDRES): + return services.EchoWrapHandler(&FullDIDDocRequestService{})(c) + // For all other supported contentType, then we call OnlyDIDDocRequestService + case requestedContentType.IsSupported(): + return services.EchoWrapHandler(&OnlyDIDDocRequestService{ResourceQuery: "default"})(c) default: // ToDo: make it more clearly return types.NewInternalError(c.Param("did"), types.JSON, errors.New("Unknown internal error while getting the type of query"), true) @@ -118,3 +144,29 @@ func DidDocVersionMetadataEchoHandler(c echo.Context) error { func DidDocAllVersionMetadataEchoHandler(c echo.Context) error { return services.EchoWrapHandler(&DIDDocAllVersionMetadataRequestService{})(c) } + +// DidDocResourceCollectionEchoHandler godoc +// +// @Summary Fetch metadata for all Resources +// @Description Get metadata for all Resources within a DID Resource Collection +// @Tags Resource Resolution +// @Accept application/did+ld+json,application/ld+json,application/did+json +// @Produce application/did+ld+json,application/ld+json,application/did+json +// @Param did path string true "Full DID with unique identifier" +// @Success 200 {object} types.ResourceDereferencing{contentStream=types.ResolutionDidDocMetadata} +// @Failure 400 {object} types.IdentityError +// @Failure 404 {object} types.IdentityError +// @Failure 406 {object} types.IdentityError +// @Failure 500 {object} types.IdentityError +// @Failure 501 {object} types.IdentityError +// @Router /{did}/metadata [get] +func DidDocResourceCollectionEchoHandler(c echo.Context) error { + // Get Accept header + acceptHeader := c.Request().Header.Get(echo.HeaderAccept) + requestedContentType, profile := services.GetPriorityContentType(acceptHeader, false) + didParam := c.Param("did") + if !requestedContentType.IsSupported() { + return types.NewRepresentationNotSupportedError(didParam, requestedContentType, nil, false) + } + return services.EchoWrapHandler(&DIDDocResourceDereferencingService{Profile: profile})(c) +} diff --git a/services/diddoc/queries/diddoc/did_doc_metadata_handler.go b/services/diddoc/queries/diddoc/did_doc_metadata_handler.go index 874d8025..71b872ef 100644 --- a/services/diddoc/queries/diddoc/did_doc_metadata_handler.go +++ b/services/diddoc/queries/diddoc/did_doc_metadata_handler.go @@ -41,10 +41,11 @@ func (dd *DidDocMetadataHandler) Handle(c services.ResolverContext, service serv _err.IsDereferencing = dd.IsDereferencing return nil, _err } + // Fill the resources - content := result.ContentStream.(*types.ResolutionDidDocMetadata) - content.Resources = filteredResources - result.ContentStream = content + resultMetadata := result.Metadata + resultMetadata.Resources = filteredResources + result.Metadata = resultMetadata return dd.Continue(c, service, result) } diff --git a/services/diddoc/queries/diddoc/did_query_service_handler.go b/services/diddoc/queries/diddoc/did_query_service_handler.go index 660a9d0f..f79344e8 100644 --- a/services/diddoc/queries/diddoc/did_query_service_handler.go +++ b/services/diddoc/queries/diddoc/did_query_service_handler.go @@ -18,7 +18,6 @@ func (s *ServiceHandler) Handle(c services.ResolverContext, service services.Req if serviceValue == "" { return s.Continue(c, service, response) } - // We expect here only DidResolution didResolution, ok := response.(*types.DidResolution) if !ok { @@ -27,13 +26,12 @@ func (s *ServiceHandler) Handle(c services.ResolverContext, service services.Req result, err := didResolution.GetServiceByName(serviceValue) if err != nil { - return nil, err + return nil, types.NewInternalError(service.GetDid(), types.JSONLD, nil, service.GetDereferencing()) } if result == "" { - return nil, types.NewNotFoundError(service.GetDid(), types.DIDJSONLD, nil, service.GetDereferencing()) + return nil, types.NewNotFoundError(service.GetDid(), service.GetContentType(), nil, service.GetDereferencing()) } - // Call the next handler return s.Continue(c, service, types.NewServiceResult(result)) } diff --git a/services/diddoc/queries/diddoc/did_query_transform_key_handler.go b/services/diddoc/queries/diddoc/did_query_transform_key_handler.go index 518f9283..b4eca827 100644 --- a/services/diddoc/queries/diddoc/did_query_transform_key_handler.go +++ b/services/diddoc/queries/diddoc/did_query_transform_key_handler.go @@ -20,7 +20,7 @@ func (t *TransformKeysHandler) Handle(c services.ResolverContext, service servic } if !transformKeys.IsSupported() { - return nil, types.NewRepresentationNotSupportedError(service.GetDid(), types.DIDJSONLD, nil, t.IsDereferencing) + return nil, types.NewRepresentationNotSupportedError(service.GetDid(), service.GetContentType(), nil, t.IsDereferencing) } // We expect here only DidResolution diff --git a/services/diddoc/routes.go b/services/diddoc/routes.go index 66b500d4..fa35f047 100644 --- a/services/diddoc/routes.go +++ b/services/diddoc/routes.go @@ -9,6 +9,7 @@ func SetRoutes(e *echo.Echo) { // Routes // Did docs e.GET(types.RESOLVER_PATH+":did", DidDocEchoHandler) + e.GET(types.RESOLVER_PATH+":did"+types.DID_METADATA, DidDocResourceCollectionEchoHandler) e.GET(types.RESOLVER_PATH+":did"+types.DID_VERSION_PATH+":version", DidDocVersionEchoHandler) e.GET(types.RESOLVER_PATH+":did"+types.DID_VERSION_PATH+":version/metadata", DidDocVersionMetadataEchoHandler) e.GET(types.RESOLVER_PATH+":did"+types.DID_VERSIONS_PATH, DidDocAllVersionMetadataEchoHandler) diff --git a/services/diddoc_service.go b/services/diddoc_service.go index c28a4d1c..482cba49 100644 --- a/services/diddoc_service.go +++ b/services/diddoc_service.go @@ -79,9 +79,8 @@ func (dds DIDDocService) Resolve(did string, version string, contentType types.C return &result, nil } -func (dds DIDDocService) GetDIDDocVersionsMetadata(did string, version string, contentType types.ContentType) (*types.ResourceDereferencing, *types.IdentityError) { - dereferenceMetadata := types.NewDereferencingMetadata(did, contentType, "") - +func (dds DIDDocService) GetDIDDocVersionsMetadata(did string, version string, contentType types.ContentType) (*types.DidResolution, *types.IdentityError) { + resolutionMetadata := types.NewResolutionMetadata(did, contentType, "") protoDidDocWithMetadata, err := dds.ledgerService.QueryDIDDoc(did, version) if err != nil { err.ContentType = contentType @@ -99,9 +98,9 @@ func (dds DIDDocService) GetDIDDocVersionsMetadata(did string, version string, c context = types.ResolutionSchemaJSONLD } - contentStream := types.NewResolutionDidDocMetadata(did, protoDidDocWithMetadata.Metadata, resources) + metadata := types.NewResolutionDidDocMetadata(did, protoDidDocWithMetadata.Metadata, resources) - return &types.ResourceDereferencing{Context: context, ContentStream: &contentStream, DereferencingMetadata: dereferenceMetadata}, nil + return &types.DidResolution{Context: context, Metadata: metadata, ResolutionMetadata: resolutionMetadata}, nil } func (dds DIDDocService) GetAllDidDocVersionsMetadata(did string, contentType types.ContentType) (*types.DidDereferencing, *types.IdentityError) { diff --git a/services/helpers.go b/services/helpers.go index 969a9d11..0924ab9a 100644 --- a/services/helpers.go +++ b/services/helpers.go @@ -6,23 +6,37 @@ import ( "github.com/cheqd/did-resolver/types" "github.com/labstack/echo/v4" + "github.com/rs/zerolog/log" + "github.com/timewasted/go-accept-headers" ) -func GetContentType(accept string) types.ContentType { - // It returns supported ContentType or "" otherwise - typeList := strings.Split(accept, ",") - for _, cType := range typeList { - result := types.ContentType(strings.Split(cType, ";")[0]) - if result == "*/*" || result == types.JSONLD { - return types.DIDJSONLD +func GetPriorityContentType(acceptHeader string, resource bool) (types.ContentType, string) { + // Parse the Accept header using the go-accept-headers package + acceptedTypes := accept.Parse(acceptHeader) + if len(acceptedTypes) == 0 { + // default content type + return types.JSONLD, "" + } + for _, at := range acceptedTypes { + mediaType := types.ContentType(at.Type + "/" + at.Subtype) + + // If the Header contains any media type, return the default content type + if mediaType == "*/*" { + if resource { // If request is from Resource Handlers + return types.JSONLD, "" + } else { // If request is from DIDDoc Handlers + return types.JSONLD, types.W3IDDIDRES + } } - // Make this place more clearly - if result.IsSupported() { - return result + + if resource || mediaType.IsSupported() { + profile := at.Extensions["profile"] + profile = strings.Trim(profile, "\"") // Remove surrounding quotes if present + log.Debug().Msgf("Selected Media Type: %s, Profile: %s, Q-Value: %f\n", mediaType, profile, at.Q) + return mediaType, profile } } - - return "" + return types.ContentType(acceptedTypes[0].Type + "/" + acceptedTypes[0].Subtype), "" } func PrepareQueries(c echo.Context) (rawQuery string, flag *string) { diff --git a/services/request_service_base.go b/services/request_service_base.go index 916db313..65d90787 100644 --- a/services/request_service_base.go +++ b/services/request_service_base.go @@ -42,12 +42,12 @@ func (dd BaseRequestService) GetDereferencing() bool { // Basic implementation func (dd *BaseRequestService) BasicPrepare(c ResolverContext) error { - // Here we raise errors even they were caught while getting the data from context - + // resourceCheck variable to decide if we need to check if the resource is dereferencing + resourceCheck := dd.IsDereferencing && dd.Fragment == "" // Get Accept header - dd.RequestedContentType = GetContentType(c.Request().Header.Get(echo.HeaderAccept)) + dd.RequestedContentType, _ = GetPriorityContentType(c.Request().Header.Get(echo.HeaderAccept), resourceCheck) if !dd.GetContentType().IsSupported() { - return types.NewRepresentationNotSupportedError(dd.GetDid(), types.JSON, nil, dd.IsDereferencing) + return types.NewRepresentationNotSupportedError(dd.GetDid(), dd.GetContentType(), nil, dd.IsDereferencing) } // Get DID from request diff --git a/services/resource/echo_handlers.go b/services/resource/echo_handlers.go index 43aa329c..ce5248c4 100644 --- a/services/resource/echo_handlers.go +++ b/services/resource/echo_handlers.go @@ -2,6 +2,7 @@ package resources import ( "github.com/cheqd/did-resolver/services" + "github.com/cheqd/did-resolver/types" "github.com/labstack/echo/v4" ) @@ -22,6 +23,12 @@ import ( // @Failure 501 {object} types.IdentityError // @Router /{did}/resources/{resourceId} [get] func ResourceDataEchoHandler(c echo.Context) error { + // Get Accept header + contentType, profile := services.GetPriorityContentType(c.Request().Header.Get(echo.HeaderAccept), true) + if contentType == types.JSONLD && profile == types.W3IDDIDURL { + return services.EchoWrapHandler(&ResourceDataWithMetadataDereferencingService{})(c) + } + return services.EchoWrapHandler(&ResourceDataDereferencingService{})(c) } @@ -44,22 +51,3 @@ func ResourceDataEchoHandler(c echo.Context) error { func ResourceMetadataEchoHandler(c echo.Context) error { return services.EchoWrapHandler(&ResourceMetadataDereferencingService{})(c) } - -// ResourceCollectionEchoHandler godoc -// -// @Summary Fetch metadata for all Resources -// @Description Get metadata for all Resources within a DID Resource Collection -// @Tags Resource Resolution -// @Accept application/did+ld+json,application/ld+json,application/did+json -// @Produce application/did+ld+json,application/ld+json,application/did+json -// @Param did path string true "Full DID with unique identifier" -// @Success 200 {object} types.ResourceDereferencing{contentStream=types.ResolutionDidDocMetadata} -// @Failure 400 {object} types.IdentityError -// @Failure 404 {object} types.IdentityError -// @Failure 406 {object} types.IdentityError -// @Failure 500 {object} types.IdentityError -// @Failure 501 {object} types.IdentityError -// @Router /{did}/metadata [get] -func ResourceCollectionEchoHandler(c echo.Context) error { - return services.EchoWrapHandler(&ResourceCollectionDereferencingService{})(c) -} diff --git a/services/resource/resource_collection_dereferencing.go b/services/resource/resource_collection_dereferencing.go deleted file mode 100644 index d165b03c..00000000 --- a/services/resource/resource_collection_dereferencing.go +++ /dev/null @@ -1,47 +0,0 @@ -package resources - -import ( - "net/http" - - "github.com/cheqd/did-resolver/migrations" - "github.com/cheqd/did-resolver/services" - "github.com/cheqd/did-resolver/types" -) - -type ResourceCollectionDereferencingService struct { - services.BaseRequestService - ResourceId string -} - -func (dr *ResourceCollectionDereferencingService) Setup(c services.ResolverContext) error { - dr.IsDereferencing = true - return nil -} - -func (dr *ResourceCollectionDereferencingService) SpecificPrepare(c services.ResolverContext) error { - return nil -} - -func (dr ResourceCollectionDereferencingService) Redirect(c services.ResolverContext) error { - migratedDid := migrations.MigrateDID(dr.GetDid()) - - path := types.RESOLVER_PATH + migratedDid + types.DID_METADATA - return c.Redirect(http.StatusMovedPermanently, path) -} - -func (dr *ResourceCollectionDereferencingService) SpecificValidation(c services.ResolverContext) error { - // We not allow query here - if len(dr.Queries) != 0 { - return types.NewInvalidDidUrlError(dr.GetDid(), dr.RequestedContentType, nil, dr.IsDereferencing) - } - return nil -} - -func (dr *ResourceCollectionDereferencingService) Query(c services.ResolverContext) error { - result, err := c.ResourceService.DereferenceCollectionResources(dr.GetDid(), dr.GetContentType()) - if err != nil { - err.IsDereferencing = dr.IsDereferencing - return err - } - return dr.SetResponse(result) -} diff --git a/services/resource/resource_data_with_metadata_dereferencing.go b/services/resource/resource_data_with_metadata_dereferencing.go new file mode 100644 index 00000000..33cfce87 --- /dev/null +++ b/services/resource/resource_data_with_metadata_dereferencing.go @@ -0,0 +1,54 @@ +package resources + +import ( + "net/http" + + "github.com/cheqd/did-resolver/migrations" + "github.com/cheqd/did-resolver/services" + "github.com/cheqd/did-resolver/types" + "github.com/cheqd/did-resolver/utils" +) + +type ResourceDataWithMetadataDereferencingService struct { + services.BaseRequestService + ResourceId string +} + +func (dr *ResourceDataWithMetadataDereferencingService) Setup(c services.ResolverContext) error { + dr.IsDereferencing = true + return nil +} + +func (dr *ResourceDataWithMetadataDereferencingService) SpecificPrepare(c services.ResolverContext) error { + dr.ResourceId = c.Param("resource") + return nil +} + +func (dr ResourceDataWithMetadataDereferencingService) Redirect(c services.ResolverContext) error { + migratedDid := migrations.MigrateDID(dr.GetDid()) + + path := types.RESOLVER_PATH + migratedDid + types.RESOURCE_PATH + dr.ResourceId + return c.Redirect(http.StatusMovedPermanently, path) +} + +func (dr *ResourceDataWithMetadataDereferencingService) SpecificValidation(c services.ResolverContext) error { + if !utils.IsValidUUID(dr.ResourceId) { + return types.NewInvalidDidUrlError(dr.ResourceId, dr.RequestedContentType, nil, dr.IsDereferencing) + } + + // We not allow query here + if len(dr.Queries) != 0 { + return types.NewInvalidDidUrlError(dr.GetDid(), dr.RequestedContentType, nil, dr.IsDereferencing) + } + return nil +} + +func (dr *ResourceDataWithMetadataDereferencingService) Query(c services.ResolverContext) error { + result, err := c.ResourceService.DereferenceResourceDataWithMetadata(dr.GetDid(), dr.ResourceId, dr.GetContentType()) + if err != nil { + err.IsDereferencing = dr.IsDereferencing + return err + } + + return dr.SetResponse(result) +} diff --git a/services/resource/routes.go b/services/resource/routes.go index f8f5afe1..351488c1 100644 --- a/services/resource/routes.go +++ b/services/resource/routes.go @@ -8,5 +8,4 @@ import ( func SetRoutes(e *echo.Echo) { e.GET(types.RESOLVER_PATH+":did"+types.RESOURCE_PATH+":resource", ResourceDataEchoHandler) e.GET(types.RESOLVER_PATH+":did"+types.RESOURCE_PATH+":resource/metadata", ResourceMetadataEchoHandler) - e.GET(types.RESOLVER_PATH+":did"+types.DID_METADATA, ResourceCollectionEchoHandler) } diff --git a/services/resource_dereference_service.go b/services/resource_dereference_service.go index ff1ed4ac..9036e7ec 100644 --- a/services/resource_dereference_service.go +++ b/services/resource_dereference_service.go @@ -6,7 +6,6 @@ import ( "strings" - resourceTypes "github.com/cheqd/cheqd-node/api/v2/cheqd/resource/v2" "github.com/cheqd/did-resolver/types" ) @@ -36,9 +35,8 @@ func (rds ResourceService) DereferenceResourceMetadata(did string, resourceId st context = types.ResolutionSchemaJSONLD } - contentStream := types.NewDereferencedResourceListStruct(did, []*resourceTypes.Metadata{resource.Metadata}) - - return &types.ResourceDereferencing{Context: context, ContentStream: contentStream, DereferencingMetadata: dereferenceMetadata}, nil + metadata := types.NewDereferencedResource(did, resource.Metadata) + return &types.ResourceDereferencing{Context: context, Metadata: metadata, DereferencingMetadata: dereferenceMetadata}, nil } func (rds ResourceService) DereferenceCollectionResources(did string, contentType types.ContentType) (*types.ResourceDereferencing, *types.IdentityError) { @@ -65,6 +63,30 @@ func (rds ResourceService) DereferenceCollectionResources(did string, contentTyp return &types.ResourceDereferencing{Context: context, ContentStream: &contentStream, DereferencingMetadata: dereferenceMetadata}, nil } +func (rds ResourceService) ResolveCollectionResources(did string, contentType types.ContentType) (*types.DidResolution, *types.IdentityError) { + resolutionMetadata := types.NewResolutionMetadata(did, contentType, "") + + didDoc, err := rds.ledgerService.QueryDIDDoc(did, "") + if err != nil { + return nil, err + } + + resources, err := rds.ledgerService.QueryCollectionResources(did) + if err != nil { + err.ContentType = contentType + return nil, err + } + + var context string + if contentType == types.DIDJSONLD || contentType == types.JSONLD { + context = types.ResolutionSchemaJSONLD + } + + metadata := types.NewResolutionDidDocMetadata(did, didDoc.Metadata, resources) + + return &types.DidResolution{Context: context, Metadata: metadata, ResolutionMetadata: resolutionMetadata}, nil +} + func (rds ResourceService) DereferenceResourceData(did string, resourceId string, contentType types.ContentType) (*types.ResourceDereferencing, *types.IdentityError) { dereferenceMetadata := types.NewDereferencingMetadata(did, contentType, "") @@ -79,3 +101,29 @@ func (rds ResourceService) DereferenceResourceData(did string, resourceId string return &types.ResourceDereferencing{ContentStream: &result, DereferencingMetadata: dereferenceMetadata}, nil } + +func (rds ResourceService) DereferenceResourceDataWithMetadata(did string, resourceId string, contentType types.ContentType) (*types.ResourceDereferencing, *types.IdentityError) { + dereferenceMetadata := types.NewDereferencingMetadata(did, contentType, "") + + resource, err := rds.ledgerService.QueryResource(did, strings.ToLower(resourceId)) + if err != nil { + err.ContentType = contentType + return nil, err + } + + var context string + if contentType == types.DIDJSONLD || contentType == types.JSONLD { + context = types.ResolutionSchemaJSONLD + } + + var result types.ContentStreamI + result = types.NewDereferencedResourceData(resource.Resource.Data) + metadata := types.NewDereferencedResource(did, resource.Metadata) + if dereferenceMetadata.ContentType == types.JSON || dereferenceMetadata.ContentType == types.TEXT { + if res, err := types.NewResourceData(resource.Resource.Data); err == nil { + result = res + } + } + + return &types.ResourceDereferencing{Context: context, ContentStream: result, Metadata: metadata, DereferencingMetadata: dereferenceMetadata}, nil +} diff --git a/tests/constants/constants.go b/tests/constants/constants.go index 453582ac..14ca3eeb 100644 --- a/tests/constants/constants.go +++ b/tests/constants/constants.go @@ -11,6 +11,7 @@ import ( var ( DefaultResolutionType = "*/*" + ChromeResolutionType = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" DefaultEncodingType = "gzip, deflate, br" NotSupportedEncodingType = "deflate, br" ) @@ -19,9 +20,10 @@ var ( IndyStyleMainnetDid = "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN" IndyStyleTestnetDid = "did:cheqd:testnet:73wnEyHhkhXiH1Nq7w5Kgq" - UUIDStyleTestnetId = "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0" - UUIDStyleMainnetDid = "did:cheqd:mainnet:c82f2b02-bdab-4dd7-b833-3e143745d612" - UUIDStyleTestnetDid = "did:cheqd:testnet:" + UUIDStyleTestnetId + UUIDStyleTestnetId = "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0" + UUIDStyleMainnetDid = "did:cheqd:mainnet:c82f2b02-bdab-4dd7-b833-3e143745d612" + UUIDStyleTestnetDid = "did:cheqd:testnet:" + UUIDStyleTestnetId + UUIDTestnetDidIdForImage = "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47" OldIndy16CharStyleTestnetDid = "did:cheqd:testnet:zHqbcXb3irKRCMst" MigratedIndy16CharStyleTestnetDid = "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR" @@ -43,6 +45,7 @@ var ( var ( UUIDStyleTestnetDidResourceId = "9ba3922e-d5f5-4f53-b265-fc0d4e988c77" + UUIDTestnetDidResourceIdForImage = "398cee0a-efac-4643-9f4c-74c48c72a14b" OldIndy32CharStyleTestnetDidIdentifierResourceId = "214b8b61-a861-416b-a7e4-45533af40ada" ExistentResourceName = "Demo Resource" ExistentResourceType = "String" @@ -166,6 +169,15 @@ var ( ValidResourceDereferencing = types.DereferencedResourceData(ValidResource[0].Resource.Data) ValidDereferencedResourceList = types.NewDereferencedResourceListStruct(ExistentDid, []*resourceTypes.Metadata{ValidResource[0].Metadata}) ValidDid = ValidDIDDoc.Id + ValidDIDDocMetadata = types.ResolutionDidDocMetadata{ + Created: &ValidCreated, + Updated: nil, + Deactivated: false, + NextVersionId: "", + PreviousVersionId: "", + VersionId: ValidVersionId, + Resources: ValidDereferencedResourceList.Resources, + } ) var DIDStructure = "did:%s:%s:%s" diff --git a/tests/integration/rest/diddoc/diddoc/negative_test.go b/tests/integration/rest/diddoc/diddoc/negative_test.go index 7fe8ab8d..26af17a7 100644 --- a/tests/integration/rest/diddoc/diddoc/negative_test.go +++ b/tests/integration/rest/diddoc/diddoc/negative_test.go @@ -41,13 +41,17 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa testconstants.TestHostAddress, testconstants.UUIDStyleMainnetDid, ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", - DidProperties: types.DidProperties{}, + DidProperties: types.DidProperties{ + DidString: testconstants.UUIDStyleMainnetDid, + MethodSpecificId: "c82f2b02-bdab-4dd7-b833-3e143745d612", + Method: testconstants.ValidMethod, + }, }, Did: nil, Metadata: types.ResolutionDidDocMetadata{}, @@ -64,13 +68,17 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa testconstants.TestHostAddress, testconstants.NotExistentMainnetDid, ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", - DidProperties: types.DidProperties{}, + DidProperties: types.DidProperties{ + DidString: testconstants.NotExistentMainnetDid, + MethodSpecificId: testconstants.NotExistentIdentifier, + Method: testconstants.ValidMethod, + }, }, Did: nil, Metadata: types.ResolutionDidDocMetadata{}, @@ -91,7 +99,7 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentMainnetDid, @@ -118,7 +126,7 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, @@ -145,7 +153,7 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.MainnetDidWithInvalidMethod, @@ -172,7 +180,7 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.TestnetDidWithInvalidMethod, @@ -199,7 +207,7 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDid", DidProperties: types.DidProperties{ DidString: testconstants.DidWithInvalidNamespace, @@ -226,7 +234,7 @@ var _ = DescribeTable("Negative: Get DIDDoc", func(testCase utils.NegativeTestCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, diff --git a/tests/integration/rest/diddoc/diddoc/positive_test.go b/tests/integration/rest/diddoc/diddoc/positive_test.go index a772cd1a..36c5b726 100644 --- a/tests/integration/rest/diddoc/diddoc/positive_test.go +++ b/tests/integration/rest/diddoc/diddoc/positive_test.go @@ -100,6 +100,22 @@ var _ = DescribeTable("Positive: Get DIDDoc", func(testCase utils.PositiveTestCa }, ), + Entry( + "can get DIDDoc with an existent UUID style testnet DID with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + ), + ResolutionType: testconstants.ChromeResolutionType, + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/diddoc/diddoc_uuid_testnet_did.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc with an existent old 16 characters INDY style testnet DID", utils.PositiveTestCase{ @@ -149,14 +165,14 @@ var _ = DescribeTable("Positive: Get DIDDoc", func(testCase utils.PositiveTestCa ), Entry( - "can get DIDDoc with an existent DID and supported DIDJSONLD resolution type", + "can get DIDDoc with an existent DID and supported JSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s", testconstants.TestHostAddress, testconstants.IndyStyleMainnetDid, ), - ResolutionType: string(types.DIDJSONLD), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDRES), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", ExpectedJSONPath: "../../testdata/diddoc/diddoc_indy_mainnet_did.json", @@ -165,17 +181,17 @@ var _ = DescribeTable("Positive: Get DIDDoc", func(testCase utils.PositiveTestCa ), Entry( - "can get DIDDoc with an existent DID and supported JSONLD resolution type", + "can get DIDDoc with an existent DID and supported DIDJSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s", testconstants.TestHostAddress, testconstants.IndyStyleMainnetDid, ), - ResolutionType: string(types.JSONLD), + ResolutionType: string(types.DIDJSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", - ExpectedJSONPath: "../../testdata/diddoc/diddoc_indy_mainnet_did.json", + ExpectedJSONPath: "../../testdata/diddoc/diddoc_indy_mainnet_did_ld.json", ExpectedStatusCode: http.StatusOK, }, ), diff --git a/tests/integration/rest/diddoc/fragment/negative_test.go b/tests/integration/rest/diddoc/fragment/negative_test.go index 880c3b61..ce9545d7 100644 --- a/tests/integration/rest/diddoc/fragment/negative_test.go +++ b/tests/integration/rest/diddoc/fragment/negative_test.go @@ -40,12 +40,12 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative testconstants.TestHostAddress, testconstants.UUIDStyleMainnetDid+url.PathEscape(testconstants.HashTag), ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, - ResolutionError: "representationNotSupported", + ContentType: "", + ResolutionError: "", DidProperties: types.DidProperties{}, }, ContentStream: nil, @@ -63,12 +63,12 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative testconstants.TestHostAddress, testconstants.NotExistentMainnetDid+url.PathEscape(testconstants.HashTag), ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, - ResolutionError: "representationNotSupported", + ContentType: "", + ResolutionError: "", DidProperties: types.DidProperties{}, }, ContentStream: nil, @@ -90,7 +90,7 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, @@ -117,7 +117,7 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -145,7 +145,7 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.IndyStyleTestnetDid, @@ -173,7 +173,7 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy16CharStyleTestnetDid, @@ -201,7 +201,7 @@ var _ = DescribeTable("Negative: Get DID#fragment", func(testCase utils.Negative ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy32CharStyleTestnetDid, diff --git a/tests/integration/rest/diddoc/fragment/positive_test.go b/tests/integration/rest/diddoc/fragment/positive_test.go index 0c2c64c6..4a169c46 100644 --- a/tests/integration/rest/diddoc/fragment/positive_test.go +++ b/tests/integration/rest/diddoc/fragment/positive_test.go @@ -53,6 +53,22 @@ var _ = DescribeTable("Positive: Get DID#fragment", func(testCase utils.Positive }, ), + Entry( + "can get verificationMethod section with an existent DID#fragment with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%skey1", + testconstants.TestHostAddress, + testconstants.IndyStyleMainnetDid+url.PathEscape(testconstants.HashTag), + ), + ResolutionType: testconstants.ChromeResolutionType, + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/diddoc_fragment/verification_method_did_fragment.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get verificationMethod section with an existent old 16 characters Indy style DID#fragment", utils.PositiveTestCase{ @@ -102,14 +118,14 @@ var _ = DescribeTable("Positive: Get DID#fragment", func(testCase utils.Positive ), Entry( - "can get verificationMethod section with an existent DID#fragment and supported DIDJSONLD resolution type", + "can get verificationMethod section with an existent DID#fragment and supported JSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%skey1", testconstants.TestHostAddress, testconstants.IndyStyleMainnetDid+url.PathEscape(testconstants.HashTag), ), - ResolutionType: string(types.DIDJSONLD), + ResolutionType: string(types.JSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", ExpectedJSONPath: "../../testdata/diddoc_fragment/verification_method_did_fragment.json", @@ -214,14 +230,14 @@ var _ = DescribeTable("Positive: Get DID#fragment", func(testCase utils.Positive ), Entry( - "can get serviceEndpoint section with an existent DID#fragment and supported DIDJSONLD resolution type", + "can get serviceEndpoint section with an existent DID#fragment and supported JSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%swebsite", testconstants.TestHostAddress, testconstants.IndyStyleMainnetDid+url.PathEscape(testconstants.HashTag), ), - ResolutionType: string(types.DIDJSONLD), + ResolutionType: string(types.JSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", ExpectedJSONPath: "../../testdata/diddoc_fragment/service_endpoint_did_fragment.json", diff --git a/tests/integration/rest/diddoc/metadata/negative_test.go b/tests/integration/rest/diddoc/metadata/negative_test.go index 018d917c..7a283060 100644 --- a/tests/integration/rest/diddoc/metadata/negative_test.go +++ b/tests/integration/rest/diddoc/metadata/negative_test.go @@ -23,12 +23,12 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - expectedDidDereferencing := testCase.ExpectedResult.(utils.DereferencingResult) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + expectedDidResolution := testCase.ExpectedResult.(types.DidResolution) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -40,16 +40,16 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.UUIDStyleMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -64,16 +64,16 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.NotExistentMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -89,10 +89,10 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.ValidIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentMainnetDid, @@ -100,8 +100,8 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -117,10 +117,10 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.ValidIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -128,8 +128,8 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti Method: testconstants.InvalidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.MethodNotSupportedHttpCode, }, @@ -145,10 +145,10 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.NotExistentIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.IndyStyleMainnetDid, @@ -156,8 +156,8 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -173,10 +173,10 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.NotExistentIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy16CharStyleTestnetDid, @@ -184,8 +184,8 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -201,10 +201,10 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.NotExistentIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy32CharStyleTestnetDid, @@ -212,8 +212,8 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -229,15 +229,15 @@ var _ = DescribeTable("Negative: Get DIDDoc version metadata", func(testCase uti testconstants.InvalidIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{}, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.InvalidDidUrlHttpCode, }, diff --git a/tests/integration/rest/diddoc/metadata/positive_test.go b/tests/integration/rest/diddoc/metadata/positive_test.go index b3011169..9a3d832d 100644 --- a/tests/integration/rest/diddoc/metadata/positive_test.go +++ b/tests/integration/rest/diddoc/metadata/positive_test.go @@ -24,15 +24,15 @@ var _ = DescribeTable("Positive: Get DIDDoc version metadata", func(testCase uti Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - var expectedDidDereferencing utils.DereferencingResult - Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidDereferencing)).To(BeNil()) + var expectedDidResolution types.DidResolution + Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidResolution)).To(BeNil()) Expect(testCase.ExpectedEncodingType).To(Equal(resp.Header().Get("Content-Encoding"))) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -103,6 +103,23 @@ var _ = DescribeTable("Positive: Get DIDDoc version metadata", func(testCase uti }, ), + Entry( + "can get DIDDoc version metadata with an existent UUID style testnet DID and versionId with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/version/%s/metadata", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetVersionId, + ), + ResolutionType: testconstants.ChromeResolutionType, + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/diddoc_version_metadata/diddoc_uuid_testnet_did.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc version metadata with an existent old 16 characters Indy style testnet DID and versionId", utils.PositiveTestCase{ @@ -155,7 +172,7 @@ var _ = DescribeTable("Positive: Get DIDDoc version metadata", func(testCase uti ), Entry( - "can get DIDDoc version metadata with an existent DID and versionId, and supported DIDJSONLD resolution type", + "can get DIDDoc version metadata with an existent DID and versionId, and supported JSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s/version/%s/metadata", @@ -163,7 +180,7 @@ var _ = DescribeTable("Positive: Get DIDDoc version metadata", func(testCase uti testconstants.UUIDStyleTestnetDid, testconstants.UUIDStyleTestnetVersionId, ), - ResolutionType: string(types.DIDJSONLD), + ResolutionType: string(types.JSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", ExpectedJSONPath: "../../testdata/diddoc_version_metadata/diddoc_uuid_testnet_did.json", diff --git a/tests/integration/rest/diddoc/query/common_negative_test.go b/tests/integration/rest/diddoc/query/common_negative_test.go index 6be229df..7a8fd2c0 100644 --- a/tests/integration/rest/diddoc/query/common_negative_test.go +++ b/tests/integration/rest/diddoc/query/common_negative_test.go @@ -39,11 +39,11 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes testconstants.TestHostAddress, testconstants.SeveralVersionsDID, ), - ResolutionType: testconstants.DefaultResolutionType, + ResolutionType: string(types.DIDJSON), ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.DIDJSON, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -71,7 +71,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -99,7 +99,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -127,7 +127,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -155,7 +155,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -183,7 +183,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -211,7 +211,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -239,7 +239,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -268,7 +268,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -297,7 +297,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -326,7 +326,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -355,7 +355,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -383,7 +383,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -412,7 +412,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -441,7 +441,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -470,7 +470,7 @@ var _ = DescribeTable("Negative: request with common query parameters", func(tes ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, diff --git a/tests/integration/rest/diddoc/query/common_positive_test.go b/tests/integration/rest/diddoc/query/common_positive_test.go index 0d4c4d56..2c5be291 100644 --- a/tests/integration/rest/diddoc/query/common_positive_test.go +++ b/tests/integration/rest/diddoc/query/common_positive_test.go @@ -34,13 +34,12 @@ var _ = DescribeTable("Positive: request with common query parameters", func(tes }, Entry( - "can get DIDDoc with an existent versionId and versionTime query parameters", + "can get DIDDoc with an existent versionTime query parameters", utils.PositiveTestCase{ DidURL: fmt.Sprintf( - "http://%s/1.0/identifiers/%s?versionId=%s&versionTime=%s", + "http://%s/1.0/identifiers/%s?versionTime=%s", testconstants.TestHostAddress, testconstants.SeveralVersionsDID, - "ce298b6f-594b-426e-b431-370d6bc5d3ad", "2023-03-06T09:39:49Z", ), ResolutionType: testconstants.DefaultResolutionType, @@ -49,6 +48,21 @@ var _ = DescribeTable("Positive: request with common query parameters", func(tes }, ), + Entry( + "can get DIDDoc with an existent versionTime query parameters with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s?versionTime=%s", + testconstants.TestHostAddress, + testconstants.SeveralVersionsDID, + "2023-03-06T09:39:49Z", + ), + ResolutionType: testconstants.ChromeResolutionType, + ExpectedJSONPath: "../../testdata/query/diddoc_common/version_id/version_time.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc with an existent versionId and transformKeys query parameters", utils.PositiveTestCase{ diff --git a/tests/integration/rest/diddoc/query/metadata/negative_test.go b/tests/integration/rest/diddoc/query/metadata/negative_test.go index b81a1c57..c0be82af 100644 --- a/tests/integration/rest/diddoc/query/metadata/negative_test.go +++ b/tests/integration/rest/diddoc/query/metadata/negative_test.go @@ -43,7 +43,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with metadata query", func(testCase ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, @@ -71,7 +71,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with metadata query", func(testCase ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, @@ -99,7 +99,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with metadata query", func(testCase ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, @@ -127,7 +127,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with metadata query", func(testCase ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "internalError", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, @@ -157,7 +157,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with metadata query", func(testCase ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, diff --git a/tests/integration/rest/diddoc/query/metadata/positive_test.go b/tests/integration/rest/diddoc/query/metadata/positive_test.go index b17ef929..dd60cf99 100644 --- a/tests/integration/rest/diddoc/query/metadata/positive_test.go +++ b/tests/integration/rest/diddoc/query/metadata/positive_test.go @@ -47,6 +47,20 @@ var _ = DescribeTable("Positive: Get DIDDoc with metadata query", func(testCase }, ), + Entry( + "can get DIDDoc metadata with metadata=true query parameter with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s?metadata=true", + testconstants.TestHostAddress, + testconstants.IndyStyleMainnetDid, + ), + ResolutionType: testconstants.ChromeResolutionType, + ExpectedJSONPath: "../../../testdata/query/metadata/diddoc_metadata_did.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc metadata with metadata=false query parameter", utils.PositiveTestCase{ diff --git a/tests/integration/rest/diddoc/query/service/negative_test.go b/tests/integration/rest/diddoc/query/service/negative_test.go index d476839c..cf681f27 100644 --- a/tests/integration/rest/diddoc/query/service/negative_test.go +++ b/tests/integration/rest/diddoc/query/service/negative_test.go @@ -43,7 +43,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with service query", func(testCase u ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -70,7 +70,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with service query", func(testCase u ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -97,7 +97,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with service query", func(testCase u ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -126,7 +126,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with service query", func(testCase u ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -155,7 +155,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with service query", func(testCase u ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -186,7 +186,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with service query", func(testCase u ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, diff --git a/tests/integration/rest/diddoc/query/transform_key/negative_test.go b/tests/integration/rest/diddoc/query/transform_key/negative_test.go index b4a99861..f8d47755 100644 --- a/tests/integration/rest/diddoc/query/transform_key/negative_test.go +++ b/tests/integration/rest/diddoc/query/transform_key/negative_test.go @@ -51,7 +51,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, @@ -78,7 +78,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -106,7 +106,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -135,7 +135,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -163,7 +163,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -191,7 +191,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -219,7 +219,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -247,7 +247,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -276,7 +276,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, @@ -304,7 +304,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with transformKeys query parameter", ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: didWithEd25519VerificationKey2018Key, diff --git a/tests/integration/rest/diddoc/query/version_id/positive_test.go b/tests/integration/rest/diddoc/query/version_id/positive_test.go index 8cde43c1..22fb43c6 100644 --- a/tests/integration/rest/diddoc/query/version_id/positive_test.go +++ b/tests/integration/rest/diddoc/query/version_id/positive_test.go @@ -49,6 +49,21 @@ var _ = DescribeTable("Positive: Get DIDDoc with versionId query", func(testCase }, ), + Entry( + "can get DIDDoc with versionId query parameter with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s?versionId=%s", + testconstants.TestHostAddress, + testconstants.SeveralVersionsDID, + "0ce23d04-5b67-4ea6-a315-788588e53f4e", + ), + ResolutionType: testconstants.ChromeResolutionType, + ExpectedJSONPath: "../../../testdata/query/diddoc/diddoc_version_did.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc with an old 16 characters INDY style DID and versionId query parameter", utils.PositiveTestCase{ diff --git a/tests/integration/rest/diddoc/query/version_time/negative_test.go b/tests/integration/rest/diddoc/query/version_time/negative_test.go index ef3969d3..85c6de87 100644 --- a/tests/integration/rest/diddoc/query/version_time/negative_test.go +++ b/tests/integration/rest/diddoc/query/version_time/negative_test.go @@ -44,7 +44,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with versionTime query", func(testCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -72,7 +72,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with versionTime query", func(testCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -99,7 +99,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with versionTime query", func(testCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -128,7 +128,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with versionTime query", func(testCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -156,7 +156,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with versionTime query", func(testCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, @@ -186,7 +186,7 @@ var _ = DescribeTable("Negative: Get DIDDoc with versionTime query", func(testCa ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.SeveralVersionsDID, diff --git a/tests/integration/rest/diddoc/query/version_time/positive_test.go b/tests/integration/rest/diddoc/query/version_time/positive_test.go index 22f21e06..c531b1b3 100644 --- a/tests/integration/rest/diddoc/query/version_time/positive_test.go +++ b/tests/integration/rest/diddoc/query/version_time/positive_test.go @@ -49,6 +49,21 @@ var _ = DescribeTable("Positive: Get DIDDoc with versionTime query", func(testCa }, ), + Entry( + "can get DIDDoc with an old 16 characters INDY style DID and versionTime query parameter with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s?versionTime=%s", + testconstants.TestHostAddress, + testconstants.OldIndy16CharStyleTestnetDid, + "2022-10-13T06:09:04Z", + ), + ResolutionType: testconstants.ChromeResolutionType, + ExpectedJSONPath: "../../../testdata/query/version_time/diddoc_version_time_16_old_indy_did.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc with an old 32 characters INDY style DID and versionTime query parameter", utils.PositiveTestCase{ diff --git a/tests/integration/rest/diddoc/version/negative_test.go b/tests/integration/rest/diddoc/version/negative_test.go index 281749ff..c29bf011 100644 --- a/tests/integration/rest/diddoc/version/negative_test.go +++ b/tests/integration/rest/diddoc/version/negative_test.go @@ -40,11 +40,11 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati testconstants.UUIDStyleMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, @@ -64,11 +64,11 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati testconstants.NotExistentMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, @@ -92,7 +92,7 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentMainnetDid, @@ -120,7 +120,7 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -148,7 +148,7 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.IndyStyleMainnetDid, @@ -176,7 +176,7 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy16CharStyleTestnetDid, @@ -204,7 +204,7 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy32CharStyleTestnetDid, @@ -232,7 +232,7 @@ var _ = DescribeTable("Negative: Get DIDDoc version", func(testCase utils.Negati ExpectedResult: types.DidResolution{ Context: "", ResolutionMetadata: types.ResolutionMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{}, }, diff --git a/tests/integration/rest/diddoc/version/positive_test.go b/tests/integration/rest/diddoc/version/positive_test.go index ddd71b5c..820629ed 100644 --- a/tests/integration/rest/diddoc/version/positive_test.go +++ b/tests/integration/rest/diddoc/version/positive_test.go @@ -24,15 +24,15 @@ var _ = DescribeTable("Positive: Get DIDDoc version", func(testCase utils.Positi Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - var expectedDidDereferencing utils.DereferencingResult - Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidDereferencing)).To(BeNil()) + var expectedDidResolution types.DidResolution + Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidResolution)).To(BeNil()) Expect(testCase.ExpectedEncodingType).To(Equal(resp.Header().Get("Content-Encoding"))) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -103,6 +103,23 @@ var _ = DescribeTable("Positive: Get DIDDoc version", func(testCase utils.Positi }, ), + Entry( + "can get DIDDoc version with an existent UUID style testnet DID and versionId with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/version/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetVersionId, + ), + ResolutionType: testconstants.ChromeResolutionType, + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_uuid_testnet_did.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc version with an existent old 16 characters Indy style DID", utils.PositiveTestCase{ @@ -115,7 +132,7 @@ var _ = DescribeTable("Positive: Get DIDDoc version", func(testCase utils.Positi ResolutionType: testconstants.DefaultResolutionType, EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", - ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_uuid_testnet_did.json", + ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_old_16_indy_testnet_did.json", ExpectedStatusCode: http.StatusOK, }, ), @@ -132,7 +149,7 @@ var _ = DescribeTable("Positive: Get DIDDoc version", func(testCase utils.Positi ResolutionType: testconstants.DefaultResolutionType, EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", - ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_uuid_testnet_did.json", + ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_old_32_indy_testnet_did.json", ExpectedStatusCode: http.StatusOK, }, ), @@ -166,7 +183,7 @@ var _ = DescribeTable("Positive: Get DIDDoc version", func(testCase utils.Positi ResolutionType: string(types.DIDJSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", - ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_uuid_testnet_did.json", + ExpectedJSONPath: "../../testdata/diddoc_version/diddoc_version_uuid_testnet_did_ld.json", ExpectedStatusCode: http.StatusOK, }, ), diff --git a/tests/integration/rest/diddoc/versions/negative_test.go b/tests/integration/rest/diddoc/versions/negative_test.go index 9d270ebf..a62635d6 100644 --- a/tests/integration/rest/diddoc/versions/negative_test.go +++ b/tests/integration/rest/diddoc/versions/negative_test.go @@ -23,12 +23,12 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - expectedDidDereferencing := testCase.ExpectedResult.(utils.DereferencingResult) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + expectedDidResolution := testCase.ExpectedResult.(types.DidResolution) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -39,16 +39,16 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat testconstants.TestHostAddress, testconstants.UUIDStyleMainnetDid, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -62,16 +62,16 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat testconstants.TestHostAddress, testconstants.NotExistentMainnetDid, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -86,10 +86,10 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat testconstants.NotExistentTestnetDid, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, @@ -97,8 +97,8 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -113,10 +113,10 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat testconstants.InvalidDid, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -124,8 +124,8 @@ var _ = DescribeTable("Negative: Get DIDDoc versions", func(testCase utils.Negat Method: testconstants.InvalidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.MethodNotSupportedHttpCode, }, diff --git a/tests/integration/rest/diddoc/versions/positive_test.go b/tests/integration/rest/diddoc/versions/positive_test.go index 46fdd50f..417192e4 100644 --- a/tests/integration/rest/diddoc/versions/positive_test.go +++ b/tests/integration/rest/diddoc/versions/positive_test.go @@ -24,15 +24,15 @@ var _ = DescribeTable("Positive: Get DIDDoc versions", func(testCase utils.Posit Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - var expectedDidDereferencing utils.DereferencingResult - Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidDereferencing)).To(BeNil()) + var expectedDidResolution types.DidResolution + Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidResolution)).To(BeNil()) Expect(testCase.ExpectedEncodingType).To(Equal(resp.Header().Get("Content-Encoding"))) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -51,6 +51,22 @@ var _ = DescribeTable("Positive: Get DIDDoc versions", func(testCase utils.Posit }, ), + Entry( + "can get DIDDoc versions with an existent DID with Chrome Accept header", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/versions", + testconstants.TestHostAddress, + testconstants.IndyStyleTestnetDid, + ), + ResolutionType: testconstants.ChromeResolutionType, + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/diddoc_versions/diddoc_versions.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + Entry( "can get DIDDoc versions with an existent old 16 characters Indy style DID", utils.PositiveTestCase{ @@ -100,14 +116,14 @@ var _ = DescribeTable("Positive: Get DIDDoc versions", func(testCase utils.Posit ), Entry( - "can get DIDDoc version with an existent DID, and supported DIDJSONLD resolution type", + "can get DIDDoc version with an existent DID, and supported JSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s/versions", testconstants.TestHostAddress, testconstants.IndyStyleTestnetDid, ), - ResolutionType: string(types.DIDJSONLD), + ResolutionType: string(types.JSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", ExpectedJSONPath: "../../testdata/diddoc_versions/diddoc_versions.json", diff --git a/tests/integration/rest/resource/collection/negative_test.go b/tests/integration/rest/resource/collection/negative_test.go index 5f38d5a9..d5d27f5f 100644 --- a/tests/integration/rest/resource/collection/negative_test.go +++ b/tests/integration/rest/resource/collection/negative_test.go @@ -23,12 +23,13 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - expectedDidDereferencing := testCase.ExpectedResult.(utils.DereferencingResult) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) + + expectedDidResolution := testCase.ExpectedResult.(types.DidResolution) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -39,16 +40,20 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti testconstants.TestHostAddress, testconstants.UUIDStyleMainnetDid, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.TEXT, ResolutionError: "representationNotSupported", - DidProperties: types.DidProperties{}, + DidProperties: types.DidProperties{ + DidString: testconstants.UUIDStyleMainnetDid, + MethodSpecificId: "c82f2b02-bdab-4dd7-b833-3e143745d612", + Method: testconstants.ValidMethod, + }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -62,16 +67,20 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti testconstants.TestHostAddress, testconstants.NotExistentMainnetDid, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.TEXT, ResolutionError: "representationNotSupported", - DidProperties: types.DidProperties{}, + DidProperties: types.DidProperties{ + DidString: testconstants.NotExistentMainnetDid, + MethodSpecificId: testconstants.NotExistentIdentifier, + Method: testconstants.ValidMethod, + }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -86,9 +95,9 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti testconstants.NotExistentMainnetDid, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ + ResolutionMetadata: types.ResolutionMetadata{ ContentType: types.JSON, ResolutionError: "notFound", DidProperties: types.DidProperties{ @@ -97,8 +106,8 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -113,10 +122,10 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti testconstants.InvalidDid, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: types.DidResolution{ Context: "", - DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ResolutionMetadata: types.ResolutionMetadata{ + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -124,8 +133,8 @@ var _ = DescribeTable("Negative: Get collection of resources", func(testCase uti Method: testconstants.InvalidMethod, }, }, - ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Did: nil, + Metadata: types.ResolutionDidDocMetadata{}, }, ExpectedStatusCode: errors.MethodNotSupportedHttpCode, }, diff --git a/tests/integration/rest/resource/collection/positive_test.go b/tests/integration/rest/resource/collection/positive_test.go index 0ed316ee..c54d1a9c 100644 --- a/tests/integration/rest/resource/collection/positive_test.go +++ b/tests/integration/rest/resource/collection/positive_test.go @@ -24,15 +24,15 @@ var _ = DescribeTable("Positive: get collection of resources", func(testCase uti Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedDidResolution types.DidResolution + Expect(json.Unmarshal(resp.Body(), &receivedDidResolution)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - var expectedDidDereferencing utils.DereferencingResult - Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidDereferencing)).To(BeNil()) + var expectedDidResolution types.DidResolution + Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidResolution)).To(BeNil()) Expect(testCase.ExpectedEncodingType).To(Equal(resp.Header().Get("Content-Encoding"))) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + utils.AssertDidResolution(expectedDidResolution, receivedDidResolution) }, Entry( @@ -86,30 +86,14 @@ var _ = DescribeTable("Positive: get collection of resources", func(testCase uti ), Entry( - "can get collection of resources with an existent DID, and supported DIDJSONLD resolution type", + "can get collection of resources with an existent DID, and supported JSONLD resolution type with profile", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s/metadata", testconstants.TestHostAddress, testconstants.UUIDStyleTestnetDid, ), - ResolutionType: string(types.DIDJSONLD), - EncodingType: testconstants.DefaultEncodingType, - ExpectedEncodingType: "gzip", - ExpectedJSONPath: "../../testdata/collection_of_resources/metadata.json", - ExpectedStatusCode: http.StatusOK, - }, - ), - - Entry( - "can get collection of resources with an existent DID, and supported JSONLD resolution type", - utils.PositiveTestCase{ - DidURL: fmt.Sprintf( - "http://%s/1.0/identifiers/%s/metadata", - testconstants.TestHostAddress, - testconstants.UUIDStyleTestnetDid, - ), - ResolutionType: string(types.JSONLD), + ResolutionType: string(types.JSONLD) + ";profile=" + types.W3IDDIDRES, EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", ExpectedJSONPath: "../../testdata/collection_of_resources/metadata.json", diff --git a/tests/integration/rest/resource/data/negative_test.go b/tests/integration/rest/resource/data/negative_test.go index d9acaa03..ed3f66c0 100644 --- a/tests/integration/rest/resource/data/negative_test.go +++ b/tests/integration/rest/resource/data/negative_test.go @@ -40,11 +40,11 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ testconstants.UUIDStyleMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, @@ -64,11 +64,11 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ testconstants.NotExistentMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), + ResolutionType: string(types.TEXT), ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, @@ -92,7 +92,7 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentMainnetDid, @@ -120,7 +120,7 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -148,7 +148,7 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, @@ -176,7 +176,7 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{}, }, @@ -200,7 +200,7 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{}, }, @@ -224,7 +224,7 @@ var _ = DescribeTable("Negative: Get resource data", func(testCase utils.Negativ ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{}, }, diff --git a/tests/integration/rest/resource/data/positive_test.go b/tests/integration/rest/resource/data/positive_test.go index 37e480c9..e4c68722 100644 --- a/tests/integration/rest/resource/data/positive_test.go +++ b/tests/integration/rest/resource/data/positive_test.go @@ -155,4 +155,38 @@ var _ = DescribeTable("Positive: Get resource data", func(testCase utils.Positiv ExpectedStatusCode: http.StatusOK, }, ), + + Entry( + "can get resource with an existent DID, with multiple headers without q values", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetDidResourceId, + ), + ResolutionType: string(types.DIDJSON) + ";profile=" + string(types.W3IDDIDURL) + string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/resource_data/resource.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + + Entry( + "can get resource with an existent DID, with multiple header and q values", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetDidResourceId, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL) + ";q=0.5," + string(types.DIDJSON) + ";q=0.9,image/png;q=0.7", + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/resource_data/resource.json", + ExpectedStatusCode: http.StatusOK, + }, + ), ) diff --git a/tests/integration/rest/resource/data_with_metadata/negative_test.go b/tests/integration/rest/resource/data_with_metadata/negative_test.go new file mode 100644 index 00000000..714e596b --- /dev/null +++ b/tests/integration/rest/resource/data_with_metadata/negative_test.go @@ -0,0 +1,189 @@ +//go:build integration + +package data_test + +import ( + "encoding/json" + "fmt" + + testconstants "github.com/cheqd/did-resolver/tests/constants" + utils "github.com/cheqd/did-resolver/tests/integration/rest" + "github.com/cheqd/did-resolver/types" + errors "github.com/cheqd/did-resolver/types" + "github.com/go-resty/resty/v2" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +var _ = DescribeTable("Negative: Get resource data", func(testCase utils.NegativeTestCase) { + client := resty.New() + + resp, err := client.R(). + SetHeader("Accept", testCase.ResolutionType). + Get(testCase.DidURL) + Expect(err).To(BeNil()) + + var receivedDidDereferencing utils.DereferencingResult + Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) + + expectedDidDereferencing := testCase.ExpectedResult.(utils.DereferencingResult) + utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) +}, + + Entry( + "cannot get resource data with not existent DID and a valid resourceId", + utils.NegativeTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.NotExistentMainnetDid, + testconstants.ValidIdentifier, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + ExpectedResult: utils.DereferencingResult{ + Context: "", + DereferencingMetadata: types.DereferencingMetadata{ + ContentType: types.JSONLD, + ResolutionError: "notFound", + DidProperties: types.DidProperties{ + DidString: testconstants.NotExistentMainnetDid, + MethodSpecificId: testconstants.NotExistentIdentifier, + Method: testconstants.ValidMethod, + }, + }, + ContentStream: nil, + Metadata: types.ResolutionDidDocMetadata{}, + }, + ExpectedStatusCode: errors.NotFoundHttpCode, + }, + ), + + Entry( + "cannot get resource data with an invalid DID and not existent resourceId", + utils.NegativeTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.InvalidDid, + testconstants.ValidIdentifier, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + ExpectedResult: utils.DereferencingResult{ + Context: "", + DereferencingMetadata: types.DereferencingMetadata{ + ContentType: types.JSONLD, + ResolutionError: "methodNotSupported", + DidProperties: types.DidProperties{ + DidString: testconstants.InvalidDid, + MethodSpecificId: testconstants.InvalidIdentifier, + Method: testconstants.InvalidMethod, + }, + }, + ContentStream: nil, + Metadata: types.ResolutionDidDocMetadata{}, + }, + ExpectedStatusCode: errors.MethodNotSupportedHttpCode, + }, + ), + + Entry( + "cannot get resource data with not existent DID and resourceId", + utils.NegativeTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.NotExistentTestnetDid, + testconstants.NotExistentIdentifier, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + ExpectedResult: utils.DereferencingResult{ + Context: "", + DereferencingMetadata: types.DereferencingMetadata{ + ContentType: types.JSONLD, + ResolutionError: "notFound", + DidProperties: types.DidProperties{ + DidString: testconstants.NotExistentTestnetDid, + MethodSpecificId: testconstants.NotExistentIdentifier, + Method: testconstants.ValidMethod, + }, + }, + ContentStream: nil, + Metadata: types.ResolutionDidDocMetadata{}, + }, + ExpectedStatusCode: errors.NotFoundHttpCode, + }, + ), + + Entry( + "cannot get resource data with an existent DID and an invalid resourceId", + utils.NegativeTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.IndyStyleMainnetDid, + testconstants.InvalidIdentifier, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + ExpectedResult: utils.DereferencingResult{ + Context: "", + DereferencingMetadata: types.DereferencingMetadata{ + ContentType: types.JSONLD, + ResolutionError: "invalidDidUrl", + DidProperties: types.DidProperties{}, + }, + ContentStream: nil, + Metadata: types.ResolutionDidDocMetadata{}, + }, + ExpectedStatusCode: errors.InvalidDidUrlHttpCode, + }, + ), + + Entry( + "cannot get resource data with an existent old 16 characters Indy style DID and an invalid resourceId", + utils.NegativeTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.OldIndy16CharStyleTestnetDid, + testconstants.InvalidIdentifier, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + ExpectedResult: utils.DereferencingResult{ + Context: "", + DereferencingMetadata: types.DereferencingMetadata{ + ContentType: types.JSONLD, + ResolutionError: "invalidDidUrl", + DidProperties: types.DidProperties{}, + }, + ContentStream: nil, + Metadata: types.ResolutionDidDocMetadata{}, + }, + ExpectedStatusCode: errors.InvalidDidUrlHttpCode, + }, + ), + + Entry( + "cannot get resource data with an existent old 32 characters Indy style DID and an invalid resourceId", + utils.NegativeTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.OldIndy32CharStyleTestnetDid, + testconstants.InvalidIdentifier, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + ExpectedResult: utils.DereferencingResult{ + Context: "", + DereferencingMetadata: types.DereferencingMetadata{ + ContentType: types.JSONLD, + ResolutionError: "invalidDidUrl", + DidProperties: types.DidProperties{}, + }, + ContentStream: nil, + Metadata: types.ResolutionDidDocMetadata{}, + }, + ExpectedStatusCode: errors.InvalidDidUrlHttpCode, + }, + ), +) diff --git a/tests/integration/rest/resource/data_with_metadata/positive_test.go b/tests/integration/rest/resource/data_with_metadata/positive_test.go new file mode 100644 index 00000000..80a5c6e7 --- /dev/null +++ b/tests/integration/rest/resource/data_with_metadata/positive_test.go @@ -0,0 +1,105 @@ +//go:build integration + +package data_test + +import ( + "encoding/json" + "fmt" + "net/http" + + testconstants "github.com/cheqd/did-resolver/tests/constants" + utils "github.com/cheqd/did-resolver/tests/integration/rest" + "github.com/cheqd/did-resolver/types" + "github.com/go-resty/resty/v2" + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +var _ = DescribeTable("Positive: Get resource data with metadata", func(testCase utils.PositiveTestCase) { + client := resty.New() + + resp, err := client.R(). + SetHeader("Accept", testCase.ResolutionType). + SetHeader("Accept-Encoding", testCase.EncodingType). + Get(testCase.DidURL) + Expect(err).To(BeNil()) + + var receivedResourceDataWithMetadata utils.ResourceDereferencingResult + Expect(json.Unmarshal(resp.Body(), &receivedResourceDataWithMetadata)).To(BeNil()) + Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) + + var expectedResourceDataWithMetadata utils.ResourceDereferencingResult + Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedResourceDataWithMetadata)).To(BeNil()) + + Expect(testCase.ExpectedEncodingType).To(Equal(resp.Header().Get("Content-Encoding"))) + utils.AssertResourceDataWithMetadata(expectedResourceDataWithMetadata, receivedResourceDataWithMetadata) +}, + + Entry( + "can get resource with metadata with an existent DID, and supported JSONLD resolution type and W3DIDUrl dereferencing param", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetDidResourceId, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/resource_data_with_metadata/resource.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + + Entry( + "can get resource with metadata with an existent DID, with multiple headers without q values", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetDidResourceId, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL) + ",*/*", + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/resource_data_with_metadata/resource.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + + Entry( + "can get resource with metadata with an existent DID, with multiple header and q values", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + testconstants.UUIDStyleTestnetDidResourceId, + ), + ResolutionType: "application/json;q=0.9," + string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL) + ";q=1.0,image/png;q=0.7", + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/resource_data_with_metadata/resource.json", + ExpectedStatusCode: http.StatusOK, + }, + ), + + Entry( + "can get resource with metadata with base64 content data for image", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s/resources/%s", + testconstants.TestHostAddress, + testconstants.UUIDTestnetDidIdForImage, + testconstants.UUIDTestnetDidResourceIdForImage, + ), + ResolutionType: string(types.JSONLD) + ";profile=" + string(types.W3IDDIDURL), + EncodingType: testconstants.DefaultEncodingType, + ExpectedEncodingType: "gzip", + ExpectedJSONPath: "../../testdata/resource_data_with_metadata/resource_image.json", + ExpectedStatusCode: http.StatusOK, + }, + ), +) diff --git a/tests/integration/rest/resource/data_with_metadata/suite_test.go b/tests/integration/rest/resource/data_with_metadata/suite_test.go new file mode 100644 index 00000000..9093b34c --- /dev/null +++ b/tests/integration/rest/resource/data_with_metadata/suite_test.go @@ -0,0 +1,15 @@ +//go:build integration + +package data_test + +import ( + "testing" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" +) + +func TestData(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "[Integration Test]: Resource Data with Metadata") +} diff --git a/tests/integration/rest/resource/metadata/negative_test.go b/tests/integration/rest/resource/metadata/negative_test.go index 7bcbd0f8..666ba576 100644 --- a/tests/integration/rest/resource/metadata/negative_test.go +++ b/tests/integration/rest/resource/metadata/negative_test.go @@ -23,12 +23,12 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedResourceDereferencing utils.ResourceDereferencingResult + Expect(json.Unmarshal(resp.Body(), &receivedResourceDereferencing)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - expectedDidDereferencing := testCase.ExpectedResult.(utils.DereferencingResult) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + expectedResourceDereferencing := testCase.ExpectedResult.(utils.ResourceDereferencingResult) + utils.AssertResourceMetadata(expectedResourceDereferencing, receivedResourceDereferencing) }, Entry( @@ -40,16 +40,16 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.UUIDStyleMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -64,16 +64,16 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.NotExistentMainnetDid, testconstants.ValidIdentifier, ), - ResolutionType: string(types.JSON), - ExpectedResult: utils.DereferencingResult{ + ResolutionType: string(types.TEXT), + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.JSON, + ContentType: types.TEXT, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{}, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, }, @@ -89,10 +89,10 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.ValidIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.NotExistentMainnetDid, @@ -101,7 +101,7 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg }, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -117,10 +117,10 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.ValidIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "methodNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, @@ -129,7 +129,7 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg }, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.MethodNotSupportedHttpCode, }, @@ -145,10 +145,10 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.NotExistentIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, @@ -157,7 +157,7 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg }, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -173,10 +173,10 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.NotExistentIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy16CharStyleTestnetDid, @@ -185,7 +185,7 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg }, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -201,10 +201,10 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.NotExistentIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "notFound", DidProperties: types.DidProperties{ DidString: testconstants.MigratedIndy32CharStyleTestnetDid, @@ -213,7 +213,7 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg }, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.NotFoundHttpCode, }, @@ -229,15 +229,15 @@ var _ = DescribeTable("Negative: get resource metadata", func(testCase utils.Neg testconstants.InvalidIdentifier, ), ResolutionType: testconstants.DefaultResolutionType, - ExpectedResult: utils.DereferencingResult{ + ExpectedResult: utils.ResourceDereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "invalidDidUrl", DidProperties: types.DidProperties{}, }, ContentStream: nil, - Metadata: types.ResolutionDidDocMetadata{}, + Metadata: &types.DereferencedResource{}, }, ExpectedStatusCode: errors.InvalidDidUrlHttpCode, }, diff --git a/tests/integration/rest/resource/metadata/positive_test.go b/tests/integration/rest/resource/metadata/positive_test.go index 3f5389fb..df1b118e 100644 --- a/tests/integration/rest/resource/metadata/positive_test.go +++ b/tests/integration/rest/resource/metadata/positive_test.go @@ -24,15 +24,15 @@ var _ = DescribeTable("Positive: get resource metadata", func(testCase utils.Pos Get(testCase.DidURL) Expect(err).To(BeNil()) - var receivedDidDereferencing utils.DereferencingResult - Expect(json.Unmarshal(resp.Body(), &receivedDidDereferencing)).To(BeNil()) + var receivedResourceDereferencing utils.ResourceDereferencingResult + Expect(json.Unmarshal(resp.Body(), &receivedResourceDereferencing)).To(BeNil()) Expect(testCase.ExpectedStatusCode).To(Equal(resp.StatusCode())) - var expectedDidDereferencing utils.DereferencingResult - Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedDidDereferencing)).To(BeNil()) + var expectedResourceDereferencing utils.ResourceDereferencingResult + Expect(utils.ConvertJsonFileToType(testCase.ExpectedJSONPath, &expectedResourceDereferencing)).To(BeNil()) Expect(testCase.ExpectedEncodingType).To(Equal(resp.Header().Get("Content-Encoding"))) - utils.AssertDidDereferencing(expectedDidDereferencing, receivedDidDereferencing) + utils.AssertResourceDataWithMetadata(expectedResourceDereferencing, receivedResourceDereferencing) }, Entry( @@ -101,13 +101,13 @@ var _ = DescribeTable("Positive: get resource metadata", func(testCase utils.Pos ResolutionType: string(types.DIDJSONLD), EncodingType: testconstants.DefaultEncodingType, ExpectedEncodingType: "gzip", - ExpectedJSONPath: "../../testdata/resource_metadata/metadata.json", + ExpectedJSONPath: "../../testdata/resource_metadata/metadata_did_ld.json", ExpectedStatusCode: http.StatusOK, }, ), Entry( - "can get DIDDoc version with an existent DID, and supported JSONLD resolution type", + "can get resource metadata with an existent DID, and supported JSONLD resolution type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s/resources/%s/metadata", @@ -124,7 +124,7 @@ var _ = DescribeTable("Positive: get resource metadata", func(testCase utils.Pos ), Entry( - "can get DIDDoc version with an existent DID, and supported gzip encoding type", + "can get resource metadata version with an existent DID, and supported gzip encoding type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s/resources/%s/metadata", @@ -141,7 +141,7 @@ var _ = DescribeTable("Positive: get resource metadata", func(testCase utils.Pos ), Entry( - "can get DIDDoc version with an existent DID, and supported gzip encoding type", + "can get resource metadata with an existent DID, and supported gzip encoding type", utils.PositiveTestCase{ DidURL: fmt.Sprintf( "http://%s/1.0/identifiers/%s/resources/%s/metadata", diff --git a/tests/integration/rest/resource/query/resource_metadata/negative_test.go b/tests/integration/rest/resource/query/resource_metadata/negative_test.go index b5b1e3a4..9f706079 100644 --- a/tests/integration/rest/resource/query/resource_metadata/negative_test.go +++ b/tests/integration/rest/resource/query/resource_metadata/negative_test.go @@ -44,18 +44,14 @@ var _ = DescribeTable("Negative: Get Resource Metadata with resourceMetadata que ExpectedResult: utils.DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, - ResolutionError: "representationNotSupported", - DidProperties: types.DidProperties{ - DidString: testconstants.UUIDStyleTestnetDid, - MethodSpecificId: testconstants.UUIDStyleTestnetId, - Method: testconstants.ValidMethod, - }, + ContentType: types.JSON, + ResolutionError: "internalError", + DidProperties: types.DidProperties{}, }, ContentStream: nil, Metadata: types.ResolutionDidDocMetadata{}, }, - ExpectedStatusCode: errors.RepresentationNotSupportedHttpCode, + ExpectedStatusCode: errors.InternalErrorHttpCode, }, ), ) diff --git a/tests/integration/rest/resource/query/resource_metadata/positive_test.go b/tests/integration/rest/resource/query/resource_metadata/positive_test.go index 596b4adf..2ce48778 100644 --- a/tests/integration/rest/resource/query/resource_metadata/positive_test.go +++ b/tests/integration/rest/resource/query/resource_metadata/positive_test.go @@ -47,19 +47,19 @@ var _ = DescribeTable("Positive: Get Resource Metadata with resourceMetadata que }, ), - // Entry( - // "can get resource metadata with resourceMetadata=false query parameter", - // utils.PositiveTestCase{ - // DidURL: fmt.Sprintf( - // "http://%s/1.0/identifiers/%s?resourceMetadata=false", - // testconstants.TestHostAddress, - // testconstants.UUIDStyleTestnetDid, - // ), - // ResolutionType: testconstants.DefaultResolutionType, - // ExpectedJSONPath: "../../../testdata/query/resource_metadata/metadata.json", - // ExpectedStatusCode: http.StatusOK, - // }, - // ), + Entry( + "can get resource metadata with resourceMetadata=false query parameter", + utils.PositiveTestCase{ + DidURL: fmt.Sprintf( + "http://%s/1.0/identifiers/%s?resourceMetadata=false", + testconstants.TestHostAddress, + testconstants.UUIDStyleTestnetDid, + ), + ResolutionType: testconstants.DefaultResolutionType, + ExpectedJSONPath: "../../../testdata/query/resource_metadata/metadata.json", + ExpectedStatusCode: http.StatusOK, + }, + ), Entry( "can get collection of resources with an old 32 characters INDY style DID and resourceMetadata query parameter", diff --git a/tests/integration/rest/support_query_negative_test.go b/tests/integration/rest/support_query_negative_test.go index a6436bc3..6986f5b9 100644 --- a/tests/integration/rest/support_query_negative_test.go +++ b/tests/integration/rest/support_query_negative_test.go @@ -43,7 +43,7 @@ var _ = DescribeTable("", func(testCase NegativeTestCase) { ExpectedResult: DereferencingResult{ Context: "", DereferencingMetadata: types.DereferencingMetadata{ - ContentType: types.DIDJSONLD, + ContentType: types.JSONLD, ResolutionError: "representationNotSupported", DidProperties: types.DidProperties{ DidString: testconstants.UUIDStyleTestnetDid, diff --git a/tests/integration/rest/test_utils.go b/tests/integration/rest/test_utils.go index e738bb21..ce546e22 100644 --- a/tests/integration/rest/test_utils.go +++ b/tests/integration/rest/test_utils.go @@ -3,6 +3,7 @@ package rest import ( + "encoding/base64" "encoding/json" "os" @@ -34,6 +35,13 @@ type DereferencingResult struct { Metadata types.ResolutionDidDocMetadata `json:"contentMetadata"` } +type ResourceDereferencingResult struct { + Context string `json:"@context,omitempty"` + DereferencingMetadata types.DereferencingMetadata `json:"dereferencingMetadata"` + ContentStream *any `json:"contentStream"` + Metadata *types.DereferencedResource `json:"contentMetadata,omitempty"` +} + func AssertDidDereferencing(expected DereferencingResult, received DereferencingResult) { Expect(expected.Context).To(Equal(received.Context)) Expect(expected.DereferencingMetadata.ContentType).To(Equal(received.DereferencingMetadata.ContentType)) @@ -52,6 +60,29 @@ func AssertDidResolution(expected types.DidResolution, received types.DidResolut Expect(expected.Metadata).To(Equal(received.Metadata)) } +func AssertResourceDataWithMetadata(expected ResourceDereferencingResult, received ResourceDereferencingResult) { + Expect(expected.Context).To(Equal(received.Context)) + Expect(expected.DereferencingMetadata.ContentType).To(Equal(received.DereferencingMetadata.ContentType)) + Expect(expected.DereferencingMetadata.ResolutionError).To(Equal(received.DereferencingMetadata.ResolutionError)) + Expect(expected.DereferencingMetadata.DidProperties).To(Equal(received.DereferencingMetadata.DidProperties)) + Expect(expected.ContentStream).To(Equal(received.ContentStream)) + Expect(isBase64Encoded(received.ContentStream)).To(BeFalse()) + Expect(expected.Metadata.ResourceType).To(Equal(received.Metadata.ResourceType)) + Expect(expected.Metadata.ResourceId).To(Equal(received.Metadata.ResourceId)) + Expect(expected.Metadata.Version).To(Equal(received.Metadata.Version)) + Expect(expected.Metadata.Name).To(Equal(received.Metadata.Name)) + Expect(expected.Metadata.CollectionId).To(Equal(received.Metadata.CollectionId)) +} + +func AssertResourceMetadata(expected ResourceDereferencingResult, received ResourceDereferencingResult) { + Expect(expected.Context).To(Equal(received.Context)) + Expect(expected.DereferencingMetadata.ContentType).To(Equal(received.DereferencingMetadata.ContentType)) + Expect(expected.DereferencingMetadata.ResolutionError).To(Equal(received.DereferencingMetadata.ResolutionError)) + Expect(expected.DereferencingMetadata.DidProperties).To(Equal(received.DereferencingMetadata.DidProperties)) + Expect(expected.ContentStream).To(Equal(received.ContentStream)) + Expect(expected.Metadata).To(Equal(received.Metadata)) +} + func ConvertJsonFileToType(path string, v any) error { file, err := os.Open(path) if err != nil { @@ -75,3 +106,13 @@ func GetTextResource(path string) (string, error) { return string(content), nil } + +func isBase64Encoded(s any) bool { + str, ok := s.(string) + if !ok { + return false + } + + _, err := base64.StdEncoding.DecodeString(str) + return err == nil +} diff --git a/tests/integration/rest/testdata/collection_of_resources/metadata.json b/tests/integration/rest/testdata/collection_of_resources/metadata.json index 9c096aca..c5e96c30 100644 --- a/tests/integration/rest/testdata/collection_of_resources/metadata.json +++ b/tests/integration/rest/testdata/collection_of_resources/metadata.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-03-27T04:52:38Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-01-25T11:58:10Z", "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", "linkedResourceMetadata": [ @@ -40,6 +40,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/collection_of_resources/metadata_32_indy_did.json b/tests/integration/rest/testdata/collection_of_resources/metadata_32_indy_did.json index dd55db37..645cbf94 100644 --- a/tests/integration/rest/testdata/collection_of_resources/metadata_32_indy_did.json +++ b/tests/integration/rest/testdata/collection_of_resources/metadata_32_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-03T11:45:26Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-10-12T08:57:25Z", "versionId": "1dc202d4-26ee-54a9-b091-8d2e1f609722", "linkedResourceMetadata": [ @@ -105,6 +105,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/collection_of_resources/metadata_did_json.json b/tests/integration/rest/testdata/collection_of_resources/metadata_did_json.json index 7a2d9084..4314c804 100644 --- a/tests/integration/rest/testdata/collection_of_resources/metadata_did_json.json +++ b/tests/integration/rest/testdata/collection_of_resources/metadata_did_json.json @@ -1,5 +1,5 @@ { - "dereferencingMetadata": { + "didResolutionMetadata": { "contentType": "application/did+json", "retrieved": "2023-04-05T16:48:19Z", "did": { @@ -8,7 +8,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-01-25T11:58:10Z", "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", "linkedResourceMetadata": [ @@ -39,6 +39,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/collection_of_resources/metadata_did_ld.json b/tests/integration/rest/testdata/collection_of_resources/metadata_did_ld.json new file mode 100644 index 00000000..27d4a7a4 --- /dev/null +++ b/tests/integration/rest/testdata/collection_of_resources/metadata_did_ld.json @@ -0,0 +1,44 @@ +{ + "@context": "https://w3id.org/did-resolution/v1", + "didResolutionMetadata": { + "contentType": "application/did+ld+json", + "retrieved": "2023-03-27T04:52:38Z", + "did": { + "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "methodSpecificId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "method": "cheqd" + } + }, + "didDocumentMetadata": { + "created": "2023-01-25T11:58:10Z", + "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", + "linkedResourceMetadata": [ + { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceName": "Demo Resource", + "resourceType": "String", + "resourceVersion" : "", + "mediaType": "application/json", + "created": "2023-01-25T12:08:39Z", + "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", + "previousVersionId": null, + "nextVersionId": null + }, + { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/e733ebb7-c8dd-41ed-9d42-33bceea70952", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "e733ebb7-c8dd-41ed-9d42-33bceea70952", + "resourceName": "ResourceName", + "resourceType": "String", + "resourceVersion" : "", + "mediaType": "text/plain; charset=utf-8", + "created": "2023-01-25T12:04:52Z", + "checksum": "cffd829b06797f85407be9353056db722ca3eca0c05ab0462a42d30f19cdef09", + "previousVersionId": null, + "nextVersionId": null + } + ] + } +} diff --git a/tests/integration/rest/testdata/diddoc/diddoc_did_json.json b/tests/integration/rest/testdata/diddoc/diddoc_did_json.json index 72361d84..e7e2338e 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_did_json.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_did_json.json @@ -52,8 +52,5 @@ } ] }, - "didDocumentMetadata": { - "created": "2022-04-05T11:49:19Z", - "versionId": "4fa8e367-c70e-533e-babf-3732d9761061" - } + "didDocumentMetadata": {} } diff --git a/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did.json b/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did.json index 7c44488a..74f4a527 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-22T11:16:34Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did_ld.json b/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did_ld.json new file mode 100644 index 00000000..8370079c --- /dev/null +++ b/tests/integration/rest/testdata/diddoc/diddoc_indy_mainnet_did_ld.json @@ -0,0 +1,54 @@ +{ + "@context": "https://w3id.org/did-resolution/v1", + "didResolutionMetadata": { + "contentType": "application/did+ld+json", + "retrieved": "2023-03-22T11:16:34Z", + "did": { + "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", + "methodSpecificId": "Ps1ysXP2Ae6GBfxNhNQNKN", + "method": "cheqd" + } + }, + "didDocument": { + "@context": [ + "https://www.w3.org/ns/did/v1", + "https://identity.foundation/.well-known/did-configuration/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", + "verificationMethod": [ + { + "id": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN#key1", + "type": "Ed25519VerificationKey2020", + "controller": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", + "publicKeyMultibase": "z6Mkta7joRuvDh7UnoESdgpr9dDUMh5LvdoECDi3WGrJoscA" + } + ], + "authentication": ["did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN#key1"], + "service": [ + { + "id": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN#website", + "type": "LinkedDomains", + "serviceEndpoint": ["https://www.cheqd.io"] + }, + { + "id": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN#non-fungible-image", + "type": "LinkedDomains", + "serviceEndpoint": [ + "https://gateway.ipfs.io/ipfs/bafybeihetj2ng3d74k7t754atv2s5dk76pcqtvxls6dntef3xa6rax25xe" + ] + }, + { + "id": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN#twitter", + "type": "LinkedDomains", + "serviceEndpoint": ["https://twitter.com/cheqd_io"] + }, + { + "id": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN#linkedin", + "type": "LinkedDomains", + "serviceEndpoint": ["https://www.linkedin.com/company/cheqd-identity/"] + } + ] + }, + "didDocumentMetadata": {} +} diff --git a/tests/integration/rest/testdata/diddoc/diddoc_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc/diddoc_indy_testnet_did.json index 21b08211..ae39306f 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-22T11:39:31Z", "did": { "didString": "did:cheqd:testnet:73wnEyHhkhXiH1Nq7w5Kgq", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_old_16_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc/diddoc_old_16_indy_testnet_did.json index be93d773..b4d61022 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_old_16_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_old_16_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T10:45:46Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_old_32_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc/diddoc_old_32_indy_testnet_did.json index 95e69a5b..bb09ce5a 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_old_32_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_old_32_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T10:55:40Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_uuid_mainnet_did.json b/tests/integration/rest/testdata/diddoc/diddoc_uuid_mainnet_did.json index 4bfe5c4c..37a2e91e 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_uuid_mainnet_did.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_uuid_mainnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-22T11:43:40Z", "did": { "didString": "did:cheqd:mainnet:c82f2b02-bdab-4dd7-b833-3e143745d612", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_did.json b/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_did.json index ccec339e..3acf7491 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-22T11:44:52Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions.json b/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions.json index 66d4e8dc..7b869da5 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-12T14:51:09Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions_between.json b/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions_between.json index c29f7433..d364f72b 100644 --- a/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions_between.json +++ b/tests/integration/rest/testdata/diddoc/diddoc_uuid_testnet_several_versions_between.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-12T15:00:53Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/diddoc_fragment/service_endpoint_did_fragment.json b/tests/integration/rest/testdata/diddoc_fragment/service_endpoint_did_fragment.json index 1e0c3ea1..4389d3ae 100644 --- a/tests/integration/rest/testdata/diddoc_fragment/service_endpoint_did_fragment.json +++ b/tests/integration/rest/testdata/diddoc_fragment/service_endpoint_did_fragment.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-27T07:01:21Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", diff --git a/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment.json b/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment.json index 2869c754..4bcff76e 100644 --- a/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment.json +++ b/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-23T12:26:03Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", diff --git a/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment_json_ld.json b/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment_json_ld.json index a0248e53..375103a4 100644 --- a/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment_json_ld.json +++ b/tests/integration/rest/testdata/diddoc_fragment/verification_method_did_fragment_json_ld.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-04T07:13:07Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", diff --git a/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_16_did_fragment.json b/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_16_did_fragment.json index 14e0e716..ba846c47 100644 --- a/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_16_did_fragment.json +++ b/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_16_did_fragment.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T10:54:17Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_32_did_fragment.json b/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_32_did_fragment.json index 1b2fcd72..42402179 100644 --- a/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_32_did_fragment.json +++ b/tests/integration/rest/testdata/diddoc_fragment/verification_method_old_32_did_fragment.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T11:17:14Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_mainnet_did.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_mainnet_did.json index 67e5e1a8..cb39ca1e 100644 --- a/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_mainnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_mainnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-24T12:50:08Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_testnet_did.json index fc40ba4a..333b9ca0 100644 --- a/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-24T12:53:42Z", "did": { "didString": "did:cheqd:testnet:73wnEyHhkhXiH1Nq7w5Kgq", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_16_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_16_indy_testnet_did.json index 2247fd96..67b281cf 100644 --- a/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_16_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_16_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T16:59:25Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_32_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_32_indy_testnet_did.json index bfc8b96e..6f4087f3 100644 --- a/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_32_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_old_32_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T17:00:41Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_mainnet_did.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_mainnet_did.json index dd4f2eb0..54a3af5a 100644 --- a/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_mainnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_mainnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-24T12:54:33Z", "did": { "didString": "did:cheqd:mainnet:c82f2b02-bdab-4dd7-b833-3e143745d612", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did.json index 07fd63f1..0ab36a17 100644 --- a/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-24T12:56:14Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", diff --git a/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did_ld.json b/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did_ld.json new file mode 100644 index 00000000..07fd63f1 --- /dev/null +++ b/tests/integration/rest/testdata/diddoc_version/diddoc_version_uuid_testnet_did_ld.json @@ -0,0 +1,63 @@ +{ + "@context": "https://w3id.org/did-resolution/v1", + "didResolutionMetadata": { + "contentType": "application/did+ld+json", + "retrieved": "2023-03-24T12:56:14Z", + "did": { + "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "methodSpecificId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "method": "cheqd" + } + }, + "didDocument": { + "@context": [ + "https://www.w3.org/ns/did/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "controller": [ + "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0" + ], + "verificationMethod": [ + { + "id": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0#key-1", + "type": "Ed25519VerificationKey2020", + "controller": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "publicKeyMultibase": "z6Mkjhidm3FJxUo4FekqyhXGMqrDLnrw9NtuzfmGQ61UXW1e" + } + ], + "authentication": [ + "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0#key-1" + ] + }, + "didDocumentMetadata": { + "created": "2023-01-25T11:58:10Z", + "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", + "linkedResourceMetadata": [ + { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceName": "Demo Resource", + "resourceType": "String", + "mediaType": "application/json", + "created": "2023-01-25T12:08:39Z", + "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", + "previousVersionId": null, + "nextVersionId": null + }, + { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/e733ebb7-c8dd-41ed-9d42-33bceea70952", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "e733ebb7-c8dd-41ed-9d42-33bceea70952", + "resourceName": "ResourceName", + "resourceType": "String", + "mediaType": "text/plain; charset=utf-8", + "created": "2023-01-25T12:04:52Z", + "checksum": "cffd829b06797f85407be9353056db722ca3eca0c05ab0462a42d30f19cdef09", + "previousVersionId": null, + "nextVersionId": null + } + ] + } +} diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_did_json.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_did_json.json index 5a86e291..3da3ede1 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_did_json.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_did_json.json @@ -1,5 +1,5 @@ { - "dereferencingMetadata": { + "didResolutionMetadata": { "contentType": "application/did+json", "retrieved": "2023-04-05T16:00:45Z", "did": { @@ -8,7 +8,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-01-25T11:58:10Z", "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", "linkedResourceMetadata": [ @@ -39,6 +39,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_mainnet_did.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_mainnet_did.json index 78b09c8d..c0216fdd 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_mainnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_mainnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-03-26T13:33:59Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", @@ -9,9 +9,8 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-04-05T11:49:19Z", "versionId": "4fa8e367-c70e-533e-babf-3732d9761061" - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_testnet_did.json index 93f12672..be26ddb0 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-03-26T13:35:22Z", "did": { "didString": "did:cheqd:testnet:73wnEyHhkhXiH1Nq7w5Kgq", @@ -9,9 +9,8 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-08-18T14:12:51Z", "versionId": "60bb3b62-e0f0-545b-a552-63aab5cd1aef" - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_16_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_16_indy_testnet_did.json index 2f48b83f..35aabf48 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_16_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_16_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-03T11:22:58Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", @@ -9,9 +9,8 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-10-13T06:09:04Z", "versionId": "674e6cb5-8d7c-5c50-b0ff-d91bcbcbd5d6" - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_32_indy_testnet_did.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_32_indy_testnet_did.json index 8f764f7c..8c51d998 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_32_indy_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_old_32_indy_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-03T11:14:11Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-10-12T08:57:25Z", "versionId": "1dc202d4-26ee-54a9-b091-8d2e1f609722", "linkedResourceMetadata": [ @@ -105,6 +105,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } \ No newline at end of file diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_mainnet_did.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_mainnet_did.json index 28f29d03..1ee76a30 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_mainnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_mainnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-03-26T13:37:47Z", "did": { "didString": "did:cheqd:mainnet:c82f2b02-bdab-4dd7-b833-3e143745d612", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-11-17T10:29:53Z", "versionId": "76e546ee-78cd-5372-b34e-8b47461626e1", "linkedResourceMetadata": [ @@ -79,6 +79,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_testnet_did.json b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_testnet_did.json index b97f3dab..f5a8df33 100644 --- a/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_testnet_did.json +++ b/tests/integration/rest/testdata/diddoc_version_metadata/diddoc_uuid_testnet_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-03-27T02:58:18Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-01-25T11:58:10Z", "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", "linkedResourceMetadata": [ @@ -40,6 +40,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/diddoc_versions/diddoc_versions.json b/tests/integration/rest/testdata/diddoc_versions/diddoc_versions.json index 344efaf2..e76627ba 100644 --- a/tests/integration/rest/testdata/diddoc_versions/diddoc_versions.json +++ b/tests/integration/rest/testdata/diddoc_versions/diddoc_versions.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T08:00:19Z", "did": { "didString": "did:cheqd:testnet:73wnEyHhkhXiH1Nq7w5Kgq", diff --git a/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_16_indy_did.json b/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_16_indy_did.json index 2dc22534..3548bb15 100644 --- a/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_16_indy_did.json +++ b/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_16_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T11:30:45Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_32_indy_did.json b/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_32_indy_did.json index 7ffad2c2..b4989ab2 100644 --- a/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_32_indy_did.json +++ b/tests/integration/rest/testdata/diddoc_versions/diddoc_versions_old_32_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:39:24Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/diddoc/diddoc_version_16_old_indy_did.json b/tests/integration/rest/testdata/query/diddoc/diddoc_version_16_old_indy_did.json index 5842c453..99ba583d 100644 --- a/tests/integration/rest/testdata/query/diddoc/diddoc_version_16_old_indy_did.json +++ b/tests/integration/rest/testdata/query/diddoc/diddoc_version_16_old_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-20T15:03:41Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/query/diddoc/diddoc_version_32_old_indy_did.json b/tests/integration/rest/testdata/query/diddoc/diddoc_version_32_old_indy_did.json index 283921b4..73a755ca 100644 --- a/tests/integration/rest/testdata/query/diddoc/diddoc_version_32_old_indy_did.json +++ b/tests/integration/rest/testdata/query/diddoc/diddoc_version_32_old_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-21T08:03:34Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/diddoc/diddoc_version_did.json b/tests/integration/rest/testdata/query/diddoc/diddoc_version_did.json index 881c8c8d..ec9edc8a 100644 --- a/tests/integration/rest/testdata/query/diddoc/diddoc_version_did.json +++ b/tests/integration/rest/testdata/query/diddoc/diddoc_version_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-21T08:19:44Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id.json b/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id.json index 3b7e2c41..86f7d2b0 100644 --- a/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id.json +++ b/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-25T10:04:17Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", @@ -9,10 +9,10 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-03-06T09:36:55Z", "deactivated": true, - "versionId": "0ce23d04-5b67-4ea6-a315-788588e53f4e" - }, - "contentMetadata": {} + "versionId": "0ce23d04-5b67-4ea6-a315-788588e53f4e", + "nextVersionId": "ce298b6f-594b-426e-b431-370d6bc5d3ad" + } } diff --git a/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id_&_version_time.json b/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id_&_version_time.json index 5acf4423..dabdf929 100644 --- a/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id_&_version_time.json +++ b/tests/integration/rest/testdata/query/diddoc_common/metadata/version_id_&_version_time.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-25T10:08:48Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", @@ -9,10 +9,10 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-03-06T09:36:55Z", "deactivated": true, - "versionId": "0ce23d04-5b67-4ea6-a315-788588e53f4e" - }, - "contentMetadata": {} + "versionId": "0ce23d04-5b67-4ea6-a315-788588e53f4e", + "nextVersionId": "ce298b6f-594b-426e-b431-370d6bc5d3ad" + } } diff --git a/tests/integration/rest/testdata/query/diddoc_common/metadata/version_time.json b/tests/integration/rest/testdata/query/diddoc_common/metadata/version_time.json index 1ce0b653..b7cbd39f 100644 --- a/tests/integration/rest/testdata/query/diddoc_common/metadata/version_time.json +++ b/tests/integration/rest/testdata/query/diddoc_common/metadata/version_time.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-25T10:05:13Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2023-03-06T09:36:55Z", "updated": "2023-03-06T09:39:48Z", "deactivated": true, @@ -31,6 +31,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/query/diddoc_common/version_id/transform_key.json b/tests/integration/rest/testdata/query/diddoc_common/version_id/transform_key.json index 434df5a2..208ed93f 100644 --- a/tests/integration/rest/testdata/query/diddoc_common/version_id/transform_key.json +++ b/tests/integration/rest/testdata/query/diddoc_common/version_id/transform_key.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-25T09:30:18Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time.json b/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time.json index 2701480e..ae8b98b8 100644 --- a/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time.json +++ b/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-25T09:29:12Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time_&_transform_key.json b/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time_&_transform_key.json index 9eed0794..8419a27f 100644 --- a/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time_&_transform_key.json +++ b/tests/integration/rest/testdata/query/diddoc_common/version_id/version_time_&_transform_key.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-25T09:35:05Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/query/metadata/diddoc_16_old_indy_did.json b/tests/integration/rest/testdata/query/metadata/diddoc_16_old_indy_did.json index 8a5a70ac..2f7873ec 100644 --- a/tests/integration/rest/testdata/query/metadata/diddoc_16_old_indy_did.json +++ b/tests/integration/rest/testdata/query/metadata/diddoc_16_old_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-24T11:03:24Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", @@ -9,9 +9,8 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-10-13T06:09:04Z", "versionId": "674e6cb5-8d7c-5c50-b0ff-d91bcbcbd5d6" - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/query/metadata/diddoc_32_old_indy_did.json b/tests/integration/rest/testdata/query/metadata/diddoc_32_old_indy_did.json index db8041c6..e9362929 100644 --- a/tests/integration/rest/testdata/query/metadata/diddoc_32_old_indy_did.json +++ b/tests/integration/rest/testdata/query/metadata/diddoc_32_old_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-24T11:04:42Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-10-12T08:57:25Z", "versionId": "1dc202d4-26ee-54a9-b091-8d2e1f609722", "linkedResourceMetadata": [ @@ -105,6 +105,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/query/metadata/diddoc_did.json b/tests/integration/rest/testdata/query/metadata/diddoc_did.json index 5aba64eb..600cd45f 100644 --- a/tests/integration/rest/testdata/query/metadata/diddoc_did.json +++ b/tests/integration/rest/testdata/query/metadata/diddoc_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-06-15T08:10:37Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", diff --git a/tests/integration/rest/testdata/query/metadata/diddoc_metadata_did.json b/tests/integration/rest/testdata/query/metadata/diddoc_metadata_did.json index a5545e23..e7b569c0 100644 --- a/tests/integration/rest/testdata/query/metadata/diddoc_metadata_did.json +++ b/tests/integration/rest/testdata/query/metadata/diddoc_metadata_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-24T10:59:35Z", "did": { "didString": "did:cheqd:mainnet:Ps1ysXP2Ae6GBfxNhNQNKN", @@ -9,9 +9,8 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-04-05T11:49:19Z", "versionId": "4fa8e367-c70e-533e-babf-3732d9761061" - }, - "contentMetadata": {} + } } \ No newline at end of file diff --git a/tests/integration/rest/testdata/query/resource_metadata/metadata.json b/tests/integration/rest/testdata/query/resource_metadata/metadata.json index 7c312926..b0b3a5f8 100644 --- a/tests/integration/rest/testdata/query/resource_metadata/metadata.json +++ b/tests/integration/rest/testdata/query/resource_metadata/metadata.json @@ -1,15 +1,36 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", - "retrieved": "2023-04-28T07:26:06Z", + "didResolutionMetadata": { + "contentType": "application/ld+json", + "retrieved": "2025-02-17T15:36:28Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", "methodSpecificId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", "method": "cheqd" } }, - "contentStream": { + "didDocument": { + "@context": [ + "https://www.w3.org/ns/did/v1", + "https://w3id.org/security/suites/ed25519-2020/v1" + ], + "id": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "controller": [ + "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0" + ], + "verificationMethod": [ + { + "id": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0#key-1", + "type": "Ed25519VerificationKey2020", + "controller": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "publicKeyMultibase": "z6Mkjhidm3FJxUo4FekqyhXGMqrDLnrw9NtuzfmGQ61UXW1e" + } + ], + "authentication": [ + "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0#key-1" + ] + }, + "didDocumentMetadata": { "created": "2023-01-25T11:58:10Z", "versionId": "e5615fc2-6f13-42b1-989c-49576a574cef", "linkedResourceMetadata": [ @@ -40,6 +61,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/query/resource_metadata/metadata_32_indy_did.json b/tests/integration/rest/testdata/query/resource_metadata/metadata_32_indy_did.json index 2873c826..7d50a9f5 100644 --- a/tests/integration/rest/testdata/query/resource_metadata/metadata_32_indy_did.json +++ b/tests/integration/rest/testdata/query/resource_metadata/metadata_32_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", - "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "didResolutionMetadata": { + "contentType": "application/ld+json", "retrieved": "2023-04-28T07:22:28Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", @@ -9,7 +9,7 @@ "method": "cheqd" } }, - "contentStream": { + "didDocumentMetadata": { "created": "2022-10-12T08:57:25Z", "versionId": "1dc202d4-26ee-54a9-b091-8d2e1f609722", "linkedResourceMetadata": [ @@ -105,6 +105,5 @@ "nextVersionId": null } ] - }, - "contentMetadata": {} + } } diff --git a/tests/integration/rest/testdata/query/resource_version_time/resource.json b/tests/integration/rest/testdata/query/resource_version_time/resource.json index 219c49fd..774c1c04 100644 --- a/tests/integration/rest/testdata/query/resource_version_time/resource.json +++ b/tests/integration/rest/testdata/query/resource_version_time/resource.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-28T08:30:17Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", diff --git a/tests/integration/rest/testdata/query/resource_version_time/resource_32_indy_did.json b/tests/integration/rest/testdata/query/resource_version_time/resource_32_indy_did.json index 6f4172c4..532990a6 100644 --- a/tests/integration/rest/testdata/query/resource_version_time/resource_32_indy_did.json +++ b/tests/integration/rest/testdata/query/resource_version_time/resource_32_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-28T08:31:32Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2018.json b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2018.json index 52adc5e7..cf8bd24b 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2018.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2018.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T06:37:48Z", "did": { "didString": "did:cheqd:testnet:d8ac0372-0d4b-413e-8ef5-8e8f07822b2c", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2020.json index 91ad00a7..68b632a8 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_ed25519_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T07:47:02Z", "did": { "didString": "did:cheqd:testnet:d8ac0372-0d4b-413e-8ef5-8e8f07822b2c", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_jwk_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_jwk_2020.json index 286de641..c0687fa0 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_jwk_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2018_to_jwk_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T07:55:10Z", "did": { "didString": "did:cheqd:testnet:d8ac0372-0d4b-413e-8ef5-8e8f07822b2c", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2018.json b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2018.json index 2be6a34c..61032197 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2018.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2018.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T11:25:32Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2020.json index 681d7e56..4516d0a7 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_ed25519_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T06:40:51Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_jwk_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_jwk_2020.json index 0b28e14c..4e636fea 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_jwk_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_ed25519_2020_to_jwk_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T10:51:25Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2018.json b/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2018.json index 451863ea..228c639d 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2018.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2018.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T11:12:27Z", "did": { "didString": "did:cheqd:testnet:54c96733-32ad-4878-b7ce-f62f4fdf3291", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2020.json index 50e2a569..52a8313a 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_ed25519_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T11:18:18Z", "did": { "didString": "did:cheqd:testnet:54c96733-32ad-4878-b7ce-f62f4fdf3291", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_jwk_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_jwk_2020.json index 6b865575..5dc93086 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_jwk_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_jwk_2020_to_jwk_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T06:42:38Z", "did": { "didString": "did:cheqd:testnet:54c96733-32ad-4878-b7ce-f62f4fdf3291", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2018.json b/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2018.json index 66b6afc0..f5d5d2cf 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2018.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2018.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:15:59Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2020.json index 6a5fc318..cad1c62b 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_ed25519_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:12:22Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_jwk_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_jwk_2020.json index 6bd1c995..7933831b 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_jwk_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_old_16_indy_jwk_2020_to_jwk_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:16:42Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2018.json b/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2018.json index 67334afd..afd92790 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2018.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2018.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:20:07Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2020.json index 30bfad9c..79d6c152 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_ed25519_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:20:38Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_jwk_2020.json b/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_jwk_2020.json index 7f21bb83..1aa9b906 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_jwk_2020.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_old_32_indy_ed255519_2020_to_jwk_2020.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-19T14:21:22Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_and_version_id.json b/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_and_version_id.json index b6243680..ba9fa1b5 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_and_version_id.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_and_version_id.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T12:02:26Z", "did": { "didString": "did:cheqd:testnet:d8ac0372-0d4b-413e-8ef5-8e8f07822b2c", diff --git a/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_version_time.json b/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_version_time.json index b6243680..ba9fa1b5 100644 --- a/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_version_time.json +++ b/tests/integration/rest/testdata/query/transform_key/diddoc_transform_key_version_time.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-17T12:02:26Z", "did": { "didString": "did:cheqd:testnet:d8ac0372-0d4b-413e-8ef5-8e8f07822b2c", diff --git a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_16_old_indy_did.json b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_16_old_indy_did.json index 70a935ff..5f9d1e5d 100644 --- a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_16_old_indy_did.json +++ b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_16_old_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-24T10:50:04Z", "did": { "didString": "did:cheqd:testnet:CpeMubv5yw63jXyrgRRsxR", diff --git a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_32_old_indy_did.json b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_32_old_indy_did.json index fb0b2b6a..2745a6c6 100644 --- a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_32_old_indy_did.json +++ b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_32_old_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-24T10:54:52Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", diff --git a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_date_did.json b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_date_did.json index 58c379b1..c5b4cfa7 100644 --- a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_date_did.json +++ b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_date_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-24T10:48:50Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_did.json b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_did.json index a53c6acf..ee05d117 100644 --- a/tests/integration/rest/testdata/query/version_time/diddoc_version_time_did.json +++ b/tests/integration/rest/testdata/query/version_time/diddoc_version_time_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "didResolutionMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-24T10:48:50Z", "did": { "didString": "did:cheqd:testnet:b5d70adf-31ca-4662-aa10-d3a54cd8f06c", diff --git a/tests/integration/rest/testdata/resource_data_with_metadata/resource.json b/tests/integration/rest/testdata/resource_data_with_metadata/resource.json new file mode 100644 index 00000000..df972abe --- /dev/null +++ b/tests/integration/rest/testdata/resource_data_with_metadata/resource.json @@ -0,0 +1,26 @@ +{ + "@context": "https://w3id.org/did-resolution/v1", + "dereferencingMetadata": { + "contentType": "application/ld+json", + "retrieved": "2023-03-27T03:52:40Z", + "did": { + "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "methodSpecificId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "method": "cheqd" + } + }, + "contentStream": "eyAKICAgICJjb250ZW50IjogInRlc3QgZGF0YSIKfQ==", + "contentMetadata": { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceName": "Demo Resource", + "resourceType": "String", + "resourceVersion" : "", + "mediaType": "application/json", + "created": "2023-01-25T12:08:39Z", + "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", + "previousVersionId": null, + "nextVersionId": null + } +} diff --git a/tests/integration/rest/testdata/resource_data_with_metadata/resource_image.json b/tests/integration/rest/testdata/resource_data_with_metadata/resource_image.json new file mode 100644 index 00000000..956eac06 --- /dev/null +++ b/tests/integration/rest/testdata/resource_data_with_metadata/resource_image.json @@ -0,0 +1,26 @@ +{ + "@context": "https://w3id.org/did-resolution/v1", + "dereferencingMetadata": { + "contentType": "application/ld+json", + "retrieved": "2025-02-17T07:49:15Z", + "did": { + "didString": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47", + "methodSpecificId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47", + "method": "cheqd" + } + }, + "contentStream": "PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xODYuMjkyIDE3LjUxM2E2LjY1NyA2LjY1NyAwIDAgMSA2Ljg3OCAyLjU4NGwtMTEuOTA1IDIuNjkzYy40MTEtMi41MiAyLjMzMy00LjY2OCA1LjAyNy01LjI3N3ptNi45NDUgOS45MWE2LjU3IDYuNTcgMCAwIDEtMy45OCAyLjY3OWMtMi43MTEuNjE0LTUuNDE3LS41MS02LjkwNy0yLjYyNmwxMS45NDEtMi43MDIgMS45NDUtLjQ0IDMuNzItLjg0MWExMS43NyAxMS43NyAwIDAgMC0uMzEtMi4zNzJjLTEuNTE0LTYuNDI2LTguMDU2LTEwLjQzMi0xNC42MTItOC45NDktNi41NTYgMS40ODQtMTAuNjQ0IDcuODk2LTkuMTMgMTQuMzIxIDEuNTEzIDYuNDI2IDguMDU1IDEwLjQzMyAxNC42MTEgOC45NSAzLjg2My0uODc1IDYuODY4LTMuNDYgOC4zNzYtNi43NTFsLTUuNjU0LTEuMjY5em0tMjguMTAyIDcuNjk1VjE4LjA4MmgtMy42Nzd2LTUuODA0aDMuNjc3VjQuMjg5aDYuMjQ0djcuOTg5aDQuNjl2NS44MDRoLTQuNjl2MTcuMDM2aC02LjI0NHptLTExLjkyOCAwaDYuMDN2LTIyLjg0aC02LjAzdjIyLjg0em0tLjc4NC0zMC44NTNjMC0yLjExNCAxLjY2Ny0zLjcgMy44MjQtMy43czMuNzc1IDEuNTg2IDMuNzc1IDMuN2MwIDIuMTE1LTEuNjE4IDMuNzQ4LTMuNzc1IDMuNzQ4cy0zLjgyNC0xLjYzMy0zLjgyNC0zLjc0OHptLTEuMzE1IDguMDc3Yy0zLjA4My4xNi00LjkwMS42MzMtNi43NSAxLjk3M3YtMi4wMzdoLTYuMDI3djIyLjg0aDYuMDI2di0xMS4yYzAtMy41MjQuODYtNS41MjkgNi43NTEtNS43MjZ2LTUuODV6bS0zMy42MDEgMTEuNzE1Yy4xNSAzLjMzMyAzLjA1MSA2LjEyOCA2LjYwMiA2LjEyOCAzLjYwMiAwIDYuNTUzLTIuOTQyIDYuNTUzLTYuNDIyIDAtMy40MzItMi45NTEtNi4zNzMtNi41NTMtNi4zNzMtMy41NSAwLTYuNDUyIDIuODQzLTYuNjAyIDYuMTI4di41Mzl6bS01Ljg4IDExLjA2MVYxLjM4bDYuMDMtMS4zNjR2MTMuOTYyYzEuODYzLTEuNDkgNC4wNy0yLjExNSA2LjQ3Mi0yLjExNSA2Ljg2NCAwIDEyLjM1NSA1LjI4NiAxMi4zNTUgMTEuOTE4IDAgNi41ODMtNS40OSAxMS45NjUtMTIuMzU1IDExLjk2NS0yLjQwMiAwLTQuNjA5LS42MjQtNi40NzItMi4xMTR2MS40ODdoLTYuMDN2LS4wMDF6bS0xMi44MzUgMFYxNy45NjVoLTMuNjc3di01LjY4N2gzLjY3N1Y0LjI4M2w2LjI0NC0xLjQxM3Y5LjQwOGg0LjY5djUuNjg3aC00LjY5djE3LjE1M2gtNi4yNDR6bS0xMS4wNSAwVjIyLjkxNWMwLTQuNDIxLTIuNDAzLTUuMzgyLTQuODA2LTUuMzgyLTIuNDAyIDAtNC44MDQuOTEzLTQuODA0IDUuMjg2djEyLjI5OWgtNi4wM3YtMjIuODRoNi4wM3YxLjY5OWMxLjMyMy0uOTYxIDIuOTQxLTIuMTE1IDYuMTI5LTIuMTE1IDUuMDk4IDAgOS41MTEgMi45MzIgOS41MTEgMTAuMDkydjEzLjE2NGgtNi4wM3pNNTYuODMxIDE3LjUxM2MyLjY5NC0uNjEgNS4zODIuNDk1IDYuODc4IDIuNTg0TDUxLjgwNSAyMi43OWMuNDEtMi41MiAyLjMzMy00LjY2OCA1LjAyNi01LjI3N3ptNi45NDUgOS45MWE2LjU3IDYuNTcgMCAwIDEtMy45OCAyLjY3OSA2LjY1NiA2LjY1NiAwIDAgMS02LjkwNy0yLjYyNmwxMS45NDItMi43MDIgMS45NDUtLjQ0IDMuNzE5LS44NDFhMTEuNzcgMTEuNzcgMCAwIDAtLjMxLTIuMzcyYy0xLjUxNC02LjQyNi04LjA1Ni0xMC40MzItMTQuNjEyLTguOTQ5LTYuNTU2IDEuNDg0LTEwLjY0NCA3Ljg5Ni05LjEzIDE0LjMyMSAxLjUxNCA2LjQyNiA4LjA1NSAxMC40MzMgMTQuNjEyIDguOTUgMy44NjMtLjg3NSA2Ljg2OC0zLjQ2IDguMzc1LTYuNzUxbC01LjY1NC0xLjI2OXptLTMxLjUzOCA3LjY5NWwtOS4zNjUtMjIuODRoNi41N2w1LjkzMyAxNS40OSA1Ljk4MS0xNS40OWg2LjU3bC05LjM2NCAyMi44NGgtNi4zMjV6TTExLjA1IDE3LjUwN2E2LjY1OCA2LjY1OCAwIDAgMSA2Ljg3OSAyLjU4NEw2LjAyNCAyMi43ODVjLjQxLTIuNTIgMi4zMzMtNC42NjggNS4wMjYtNS4yNzh6bTYuOTQ1IDkuOTFhNi41NyA2LjU3IDAgMCAxLTMuOTggMi42OGMtMi43MS42MTMtNS40MTYtLjUxLTYuOTA3LTIuNjI2bDExLjk0Mi0yLjcwMiAxLjk0NS0uNDQgMy43MTktLjg0MmExMS43ODIgMTEuNzgyIDAgMCAwLS4zMS0yLjM3MWMtMS41MTQtNi40MjYtOC4wNTUtMTAuNDMzLTE0LjYxMi04Ljk1QzMuMjM2IDEzLjY1LS44NSAyMC4wNjMuNjYyIDI2LjQ4OWMxLjUxNCA2LjQyNiA4LjA1NiAxMC40MzIgMTQuNjEyIDguOTQ5IDMuODYzLS44NzQgNi44NjgtMy40NiA4LjM3Ni02Ljc1bC01LjY1NS0xLjI3di0uMDAxeiIgZmlsbD0iI0YwNTUzNyIvPjwvc3ZnPg==", + "contentMetadata": { + "resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b", + "resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47", + "resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b", + "resourceName": "Eventbrite Logo", + "resourceType": "image/png", + "mediaType": "image/svg+xml", + "resourceVersion": "", + "created": "2022-11-17T08:10:36Z", + "checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559", + "previousVersionId": null, + "nextVersionId": null + } +} \ No newline at end of file diff --git a/tests/integration/rest/testdata/resource_metadata/metadata.json b/tests/integration/rest/testdata/resource_metadata/metadata.json index 2e00955d..7744040b 100644 --- a/tests/integration/rest/testdata/resource_metadata/metadata.json +++ b/tests/integration/rest/testdata/resource_metadata/metadata.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-03-27T03:52:40Z", "did": { "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", @@ -9,22 +9,18 @@ "method": "cheqd" } }, - "contentStream": { - "linkedResourceMetadata": [ - { - "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", - "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", - "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", - "resourceName": "Demo Resource", - "resourceType": "String", - "resourceVersion" : "", - "mediaType": "application/json", - "created": "2023-01-25T12:08:39Z", - "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", - "previousVersionId": null, - "nextVersionId": null - } - ] - }, - "contentMetadata": {} + "contentStream": null, + "contentMetadata": { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceName": "Demo Resource", + "resourceType": "String", + "resourceVersion" : "", + "mediaType": "application/json", + "created": "2023-01-25T12:08:39Z", + "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", + "previousVersionId": null, + "nextVersionId": null + } } diff --git a/tests/integration/rest/testdata/resource_metadata/metadata_32_indy_did.json b/tests/integration/rest/testdata/resource_metadata/metadata_32_indy_did.json index cce5308a..871fbc98 100644 --- a/tests/integration/rest/testdata/resource_metadata/metadata_32_indy_did.json +++ b/tests/integration/rest/testdata/resource_metadata/metadata_32_indy_did.json @@ -1,7 +1,7 @@ { "@context": "https://w3id.org/did-resolution/v1", "dereferencingMetadata": { - "contentType": "application/did+ld+json", + "contentType": "application/ld+json", "retrieved": "2023-04-03T11:41:04Z", "did": { "didString": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu", @@ -9,22 +9,18 @@ "method": "cheqd" } }, - "contentStream": { - "linkedResourceMetadata": [ - { - "resourceURI": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu/resources/214b8b61-a861-416b-a7e4-45533af40ada", - "resourceCollectionId": "3KpiDD6Hxs4i2G7FtpiGhu", - "resourceId": "214b8b61-a861-416b-a7e4-45533af40ada", - "resourceName": "RevRegEntry301071f2-314d-49e4-8e65-393586e5e05a", - "resourceType": "CL-RevRegEntry", - "resourceVersion" : "", - "mediaType": "application/json", - "created": "2022-10-12T09:00:02Z", - "checksum": "4bf7d5855a05955f84195f01ef7e8d91353a8895dc5d9022aebbcecc9f2c3dc6", - "previousVersionId": "616be02a-0838-42ee-b906-065fff3799ea", - "nextVersionId": "9f5b2985-990d-4160-94ed-06706043af7e" - } - ] - }, - "contentMetadata": {} + "contentStream": null, + "contentMetadata": { + "resourceURI": "did:cheqd:testnet:3KpiDD6Hxs4i2G7FtpiGhu/resources/214b8b61-a861-416b-a7e4-45533af40ada", + "resourceCollectionId": "3KpiDD6Hxs4i2G7FtpiGhu", + "resourceId": "214b8b61-a861-416b-a7e4-45533af40ada", + "resourceName": "RevRegEntry301071f2-314d-49e4-8e65-393586e5e05a", + "resourceType": "CL-RevRegEntry", + "resourceVersion" : "", + "mediaType": "application/json", + "created": "2022-10-12T09:00:02Z", + "checksum": "4bf7d5855a05955f84195f01ef7e8d91353a8895dc5d9022aebbcecc9f2c3dc6", + "previousVersionId": "616be02a-0838-42ee-b906-065fff3799ea", + "nextVersionId": "9f5b2985-990d-4160-94ed-06706043af7e" + } } diff --git a/tests/integration/rest/testdata/resource_metadata/metadata_did_json.json b/tests/integration/rest/testdata/resource_metadata/metadata_did_json.json index 52da7bfb..bf9f3570 100644 --- a/tests/integration/rest/testdata/resource_metadata/metadata_did_json.json +++ b/tests/integration/rest/testdata/resource_metadata/metadata_did_json.json @@ -8,22 +8,18 @@ "method": "cheqd" } }, - "contentStream": { - "linkedResourceMetadata": [ - { - "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", - "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", - "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", - "resourceName": "Demo Resource", - "resourceType": "String", - "resourceVersion" : "", - "mediaType": "application/json", - "created": "2023-01-25T12:08:39Z", - "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", - "previousVersionId": null, - "nextVersionId": null - } - ] - }, - "contentMetadata": {} + "contentStream": null, + "contentMetadata": { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceName": "Demo Resource", + "resourceType": "String", + "resourceVersion" : "", + "mediaType": "application/json", + "created": "2023-01-25T12:08:39Z", + "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", + "previousVersionId": null, + "nextVersionId": null + } } diff --git a/tests/integration/rest/testdata/resource_metadata/metadata_did_ld.json b/tests/integration/rest/testdata/resource_metadata/metadata_did_ld.json new file mode 100644 index 00000000..1f836d2c --- /dev/null +++ b/tests/integration/rest/testdata/resource_metadata/metadata_did_ld.json @@ -0,0 +1,26 @@ +{ + "@context": "https://w3id.org/did-resolution/v1", + "dereferencingMetadata": { + "contentType": "application/did+ld+json", + "retrieved": "2023-03-27T03:52:40Z", + "did": { + "didString": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "methodSpecificId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "method": "cheqd" + } + }, + "contentStream": null, + "contentMetadata": { + "resourceURI": "did:cheqd:testnet:c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0/resources/9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceCollectionId": "c1685ca0-1f5b-439c-8eb8-5c0e85ab7cd0", + "resourceId": "9ba3922e-d5f5-4f53-b265-fc0d4e988c77", + "resourceName": "Demo Resource", + "resourceType": "String", + "resourceVersion" : "", + "mediaType": "application/json", + "created": "2023-01-25T12:08:39Z", + "checksum": "e1dbc03b50bdb995961dc8843df6539b79d03bf49787ed6462189ee97d27eaf3", + "previousVersionId": null, + "nextVersionId": null + } +} diff --git a/tests/unit/diddoc/common/did_doc_metadata_test.go b/tests/unit/diddoc/common/did_doc_metadata_test.go index e4a07ebc..9409745e 100644 --- a/tests/unit/diddoc/common/did_doc_metadata_test.go +++ b/tests/unit/diddoc/common/did_doc_metadata_test.go @@ -17,6 +17,7 @@ var _ = Describe("Test NewResolutionDIDDocMetadata function", func() { metadata := &didTypes.Metadata{ VersionId: testconstants.ValidIdentifier, Deactivated: false, + Created: nil, } resources := []*resourceTypes.Metadata{ diff --git a/tests/unit/diddoc/request/common_positive_metadata_test.go b/tests/unit/diddoc/request/common_positive_metadata_test.go index 70976eae..dfe473dd 100644 --- a/tests/unit/diddoc/request/common_positive_metadata_test.go +++ b/tests/unit/diddoc/request/common_positive_metadata_test.go @@ -67,7 +67,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -96,7 +96,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -128,7 +128,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase ResourceName1.Metadata, }, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -158,7 +158,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -189,7 +189,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -221,7 +221,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -254,7 +254,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -288,7 +288,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -320,7 +320,7 @@ var _ = DescribeTable("Tests for mixed DidDoc and resource cases", func(testCase ResourceName1.Metadata, }, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, diff --git a/tests/unit/diddoc/request/diddoc_negative_cases_test.go b/tests/unit/diddoc/request/diddoc_negative_cases_test.go index 418083bc..e375412b 100644 --- a/tests/unit/diddoc/request/diddoc_negative_cases_test.go +++ b/tests/unit/diddoc/request/diddoc_negative_cases_test.go @@ -20,6 +20,7 @@ import ( var _ = DescribeTable("Test Query handlers with versionId and versionTime params", func(testCase QueriesDIDDocTestCase) { request := httptest.NewRequest(http.MethodGet, testCase.didURL, nil) + request.Header.Set("Accept", string(testCase.resolutionType)) context, rec := utils.SetupEmptyContext(request, testCase.resolutionType, MockLedger) expectedDIDResolution := testCase.expectedResolution.(*types.DidResolution) @@ -133,4 +134,31 @@ var _ = DescribeTable("Test Query handlers with versionId and versionTime params expectedError: types.NewRepresentationNotSupportedError(testconstants.ValidDid, types.DIDJSONLD, nil, true), }, ), + Entry( + "Negative. Unsupported Accept Header", + QueriesDIDDocTestCase{ + didURL: fmt.Sprintf("/1.0/identifiers/%s", testconstants.ValidDid), + resolutionType: types.TEXT, + expectedResolution: &types.DidResolution{}, + expectedError: types.NewRepresentationNotSupportedError(testconstants.ValidDid, types.JSON, nil, false), + }, + ), + Entry( + "Negative. Invalid value for metadata query", + QueriesDIDDocTestCase{ + didURL: fmt.Sprintf("/1.0/identifiers/%s?metadata=xxxx", testconstants.ValidDid), + resolutionType: types.JSONLD, + expectedResolution: &types.DidResolution{}, + expectedError: types.NewRepresentationNotSupportedError(testconstants.ValidDid, types.JSONLD, nil, false), + }, + ), + Entry( + "Negative. Invalid value for resourceMetadata query", + QueriesDIDDocTestCase{ + didURL: fmt.Sprintf("/1.0/identifiers/%s?resourceMetadata=xxxx", testconstants.ValidDid), + resolutionType: types.JSONLD, + expectedResolution: &types.DidResolution{}, + expectedError: types.NewInternalError(testconstants.ValidDid, types.JSONLD, nil, false), + }, + ), ) diff --git a/tests/unit/diddoc/request/diddoc_positive_cases_test.go b/tests/unit/diddoc/request/diddoc_positive_cases_test.go index 878915fa..e6a5bb0a 100644 --- a/tests/unit/diddoc/request/diddoc_positive_cases_test.go +++ b/tests/unit/diddoc/request/diddoc_positive_cases_test.go @@ -21,6 +21,7 @@ import ( var _ = DescribeTable("Test Query handlers with versionId and versionTime params", func(testCase QueriesDIDDocTestCase) { request := httptest.NewRequest(http.MethodGet, testCase.didURL, nil) + request.Header.Set("Accept", string(testCase.resolutionType)) context, rec := utils.SetupEmptyContext(request, testCase.resolutionType, MockLedger) expectedDIDResolution := testCase.expectedResolution.(*types.DidResolution) diff --git a/tests/unit/resource/request/request_service_dereference_collection_resources_test.go b/tests/unit/diddoc/request/request_service_dereference_collection_resources_test.go similarity index 64% rename from tests/unit/resource/request/request_service_dereference_collection_resources_test.go rename to tests/unit/diddoc/request/request_service_dereference_collection_resources_test.go index 25630ff1..7e20393c 100644 --- a/tests/unit/resource/request/request_service_dereference_collection_resources_test.go +++ b/tests/unit/diddoc/request/request_service_dereference_collection_resources_test.go @@ -13,42 +13,34 @@ import ( . "github.com/onsi/gomega" resourceTypes "github.com/cheqd/cheqd-node/api/v2/cheqd/resource/v2" - resourceServices "github.com/cheqd/did-resolver/services/resource" + didDocServices "github.com/cheqd/did-resolver/services/diddoc" testconstants "github.com/cheqd/did-resolver/tests/constants" utils "github.com/cheqd/did-resolver/tests/unit" "github.com/cheqd/did-resolver/types" ) type resourceCollectionTestCase struct { - didURL string - resolutionType types.ContentType - expectedDereferencingResult *DereferencingResult - expectedError error + didURL string + resolutionType types.ContentType + expectedResolution types.ResolutionResultI + expectedError *types.IdentityError } -var _ = DescribeTable("Test ResourceCollectionEchoHandler function", func(testCase resourceCollectionTestCase) { +var _ = DescribeTable("Test DidDocResourceCollectionEchoHandler function", func(testCase resourceCollectionTestCase) { request := httptest.NewRequest(http.MethodGet, testCase.didURL, nil) context, rec := utils.SetupEmptyContext(request, testCase.resolutionType, utils.MockLedger) + expectedDIDResolution := testCase.expectedResolution.(*types.DidResolution) + expectedContentType := utils.DefineContentType(expectedDIDResolution.ResolutionMetadata.ContentType, testCase.resolutionType) - if (testCase.resolutionType == "" || testCase.resolutionType == types.DIDJSONLD) && testCase.expectedError == nil { - testCase.expectedDereferencingResult.ContentStream.AddContext(types.DIDSchemaJSONLD) - } else if testCase.expectedDereferencingResult.ContentStream != nil { - testCase.expectedDereferencingResult.ContentStream.RemoveContext() - } - - expectedContentType := utils.DefineContentType(testCase.expectedDereferencingResult.DereferencingMetadata.ContentType, testCase.resolutionType) - - err := resourceServices.ResourceCollectionEchoHandler(context) + err := didDocServices.DidDocResourceCollectionEchoHandler(context) if testCase.expectedError != nil { - Expect(testCase.expectedError.Error(), err.Error()) + Expect(testCase.expectedError.Error()).To(Equal(err.Error())) } else { - var dereferencingResult DereferencingResult + var resolutionResult types.DidResolution Expect(err).To(BeNil()) - Expect(json.Unmarshal(rec.Body.Bytes(), &dereferencingResult)).To(BeNil()) - Expect(testCase.expectedDereferencingResult.ContentStream).To(Equal(dereferencingResult.ContentStream)) - Expect(testCase.expectedDereferencingResult.Metadata).To(Equal(dereferencingResult.Metadata)) - Expect(expectedContentType).To(Equal(dereferencingResult.DereferencingMetadata.ContentType)) - Expect(testCase.expectedDereferencingResult.DereferencingMetadata.DidProperties).To(Equal(dereferencingResult.DereferencingMetadata.DidProperties)) + Expect(json.Unmarshal(rec.Body.Bytes(), &resolutionResult)).To(BeNil()) + Expect(expectedDIDResolution.Metadata).To(Equal(resolutionResult.Metadata)) + Expect(expectedContentType).To(Equal(resolutionResult.ResolutionMetadata.ContentType)) Expect(expectedContentType).To(Equal(types.ContentType(rec.Header().Get("Content-Type")))) } }, @@ -57,20 +49,19 @@ var _ = DescribeTable("Test ResourceCollectionEchoHandler function", func(testCa "can get collection of resource with an existent DID", resourceCollectionTestCase{ didURL: fmt.Sprintf("/1.0/identifiers/%s/metadata", testconstants.ExistentDid), - resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + resolutionType: types.JSONLD, + expectedResolution: &types.DidResolution{ + ResolutionMetadata: types.ResolutionMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.ExistentDid, MethodSpecificId: testconstants.ValidIdentifier, Method: testconstants.ValidMethod, }, }, - ContentStream: types.NewDereferencedResourceListStruct( - testconstants.ExistentDid, + Metadata: types.NewResolutionDidDocMetadata( + testconstants.ExistentDid, &testconstants.ValidMetadata, []*resourceTypes.Metadata{testconstants.ValidResource[0].Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, }, expectedError: nil, }, @@ -81,16 +72,15 @@ var _ = DescribeTable("Test ResourceCollectionEchoHandler function", func(testCa resourceCollectionTestCase{ didURL: fmt.Sprintf("/1.0/identifiers/%s/metadata", testconstants.NotExistentTestnetDid), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedResolution: &types.DidResolution{ + ResolutionMetadata: types.ResolutionMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, MethodSpecificId: testconstants.NotExistentIdentifier, Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: types.ResolutionDidDocMetadata{}, }, expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, false), }, @@ -101,16 +91,15 @@ var _ = DescribeTable("Test ResourceCollectionEchoHandler function", func(testCa resourceCollectionTestCase{ didURL: fmt.Sprintf("/1.0/identifiers/%s/metadata", testconstants.InvalidDid), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedResolution: &types.DidResolution{ + ResolutionMetadata: types.ResolutionMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, MethodSpecificId: testconstants.InvalidIdentifier, Method: testconstants.InvalidMethod, }, }, - ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: types.ResolutionDidDocMetadata{}, }, expectedError: types.NewMethodNotSupportedError(testconstants.InvalidDid, types.DIDJSONLD, nil, false), }, @@ -120,17 +109,16 @@ var _ = DescribeTable("Test ResourceCollectionEchoHandler function", func(testCa "invalid representation", resourceCollectionTestCase{ didURL: fmt.Sprintf("/1.0/identifiers/%s/metadata", testconstants.ExistentDid), - resolutionType: types.JSON, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + resolutionType: types.TEXT, + expectedResolution: &types.DidResolution{ + ResolutionMetadata: types.ResolutionMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.ExistentDid, MethodSpecificId: testconstants.ValidIdentifier, Method: testconstants.ValidMethod, }, }, - ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: types.ResolutionDidDocMetadata{}, }, expectedError: types.NewRepresentationNotSupportedError(testconstants.ExistentDid, types.JSON, nil, false), }, @@ -141,7 +129,7 @@ var _ = DescribeTable("Test redirect DID", func(testCase utils.RedirectDIDTestCa request := httptest.NewRequest(http.MethodGet, testCase.DidURL, nil) context, rec := utils.SetupEmptyContext(request, testCase.ResolutionType, utils.MockLedger) - err := resourceServices.ResourceCollectionEchoHandler(context) + err := didDocServices.DidDocResourceCollectionEchoHandler(context) if err != nil { Expect(testCase.ExpectedError.Error()).To(Equal(err.Error())) } else { diff --git a/tests/unit/diddoc/request/request_service_resolve_did_doc_test.go b/tests/unit/diddoc/request/request_service_resolve_did_doc_test.go index 72db51f7..72c63eca 100644 --- a/tests/unit/diddoc/request/request_service_resolve_did_doc_test.go +++ b/tests/unit/diddoc/request/request_service_resolve_did_doc_test.go @@ -22,15 +22,17 @@ import ( type resolveDIDDocTestCase struct { didURL string resolutionType types.ContentType + acceptHeader string expectedDIDResolution *types.DidResolution expectedError error } var _ = DescribeTable("Test DIDDocEchoHandler function", func(testCase resolveDIDDocTestCase) { request := httptest.NewRequest(http.MethodGet, testCase.didURL, nil) + request.Header.Set("Accept", testCase.acceptHeader) // Set Accept header dynamically context, rec := utils.SetupEmptyContext(request, testCase.resolutionType, utils.MockLedger) - if (testCase.resolutionType == "" || testCase.resolutionType == types.DIDJSONLD) && testCase.expectedError == nil { + if (testCase.resolutionType == "" || testCase.resolutionType == types.JSONLD) && testCase.expectedError == nil { testCase.expectedDIDResolution.Did.Context = []string{types.DIDSchemaJSONLD, types.LinkedDomainsJSONLD, types.JsonWebKey2020JSONLD} } else if testCase.expectedDIDResolution.Did != nil { testCase.expectedDIDResolution.Did.Context = nil @@ -57,7 +59,8 @@ var _ = DescribeTable("Test DIDDocEchoHandler function", func(testCase resolveDI "can get DIDDoc with an existent DID", resolveDIDDocTestCase{ didURL: fmt.Sprintf("/1.0/identifiers/%s", testconstants.ExistentDid), - resolutionType: types.DIDJSONLD, + resolutionType: types.JSONLD, + acceptHeader: string(types.JSONLD) + ";profile=" + types.W3IDDIDRES, expectedDIDResolution: &types.DidResolution{ ResolutionMetadata: types.ResolutionMetadata{ DidProperties: types.DidProperties{ @@ -243,7 +246,8 @@ var _ = DescribeTable("Test DIDDocEchoHandler function", func(testCase resolveDI "cannot get DIDDoc with an invalid representation", resolveDIDDocTestCase{ didURL: fmt.Sprintf("/1.0/identifiers/%s", testconstants.ExistentDid), - resolutionType: types.JSON, + resolutionType: types.TEXT, + acceptHeader: string(types.TEXT), expectedDIDResolution: &types.DidResolution{ ResolutionMetadata: types.ResolutionMetadata{ DidProperties: types.DidProperties{ diff --git a/tests/unit/diddoc/request/resources_positive_cases_metadata_test.go b/tests/unit/diddoc/request/resources_positive_cases_metadata_test.go index 2ec9887a..c90afaed 100644 --- a/tests/unit/diddoc/request/resources_positive_cases_metadata_test.go +++ b/tests/unit/diddoc/request/resources_positive_cases_metadata_test.go @@ -78,7 +78,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -105,7 +105,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -138,7 +138,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t ResourceName1.Metadata, }, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -166,7 +166,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -195,7 +195,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -225,7 +225,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -256,7 +256,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -288,7 +288,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t testconstants.ValidDid, []*resourceTypes.Metadata{ResourceName1.Metadata}, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -318,7 +318,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t ResourceName1.Metadata, }, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -347,7 +347,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t ResourceName1.Metadata, }, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, @@ -376,7 +376,7 @@ var _ = DescribeTable("Test resource positive cases with Metadata field", func(t ResourceType1.Metadata, }, ), - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: nil, }, diff --git a/tests/unit/resource/common/resource_dereference_collection_resources_test.go b/tests/unit/resource/common/resource_dereference_collection_resources_test.go index 207d3d00..94649834 100644 --- a/tests/unit/resource/common/resource_dereference_collection_resources_test.go +++ b/tests/unit/resource/common/resource_dereference_collection_resources_test.go @@ -54,7 +54,6 @@ var _ = DescribeTable("Test DereferenceCollectionResources method", func(testCas }, }, ContentStream: testconstants.ValidDereferencedResourceList, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: nil, }, @@ -73,7 +72,6 @@ var _ = DescribeTable("Test DereferenceCollectionResources method", func(testCas Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, true), }, diff --git a/tests/unit/resource/common/resource_dereference_metadata_service_test.go b/tests/unit/resource/common/resource_dereference_metadata_service_test.go index ffbf0d29..4558c122 100644 --- a/tests/unit/resource/common/resource_dereference_metadata_service_test.go +++ b/tests/unit/resource/common/resource_dereference_metadata_service_test.go @@ -35,7 +35,6 @@ var _ = DescribeTable("Test DereferenceResourceMetadata method", func(testCase d Expect(testCase.expectedError.Code).To(Equal(err.Code)) Expect(testCase.expectedError.Message).To(Equal(err.Message)) } else { - Expect(testCase.expectedResourceDereferencing.ContentStream).To(Equal(dereferencingResult.ContentStream)) Expect(testCase.expectedResourceDereferencing.Metadata).To(Equal(dereferencingResult.Metadata)) Expect(expectedContentType).To(Equal(dereferencingResult.DereferencingMetadata.ContentType)) Expect(testCase.expectedResourceDereferencing.DereferencingMetadata.DidProperties).To(Equal(dereferencingResult.DereferencingMetadata.DidProperties)) @@ -57,8 +56,10 @@ var _ = DescribeTable("Test DereferenceResourceMetadata method", func(testCase d Method: testconstants.ValidMethod, }, }, - ContentStream: testconstants.ValidDereferencedResourceList, - Metadata: types.ResolutionResourceMetadata{}, + Metadata: types.NewDereferencedResource( + testconstants.ExistentDid, + testconstants.ValidResource[0].Metadata, + ), }, expectedError: nil, }, @@ -78,8 +79,10 @@ var _ = DescribeTable("Test DereferenceResourceMetadata method", func(testCase d Method: testconstants.ValidMethod, }, }, - ContentStream: testconstants.ValidDereferencedResourceList, - Metadata: types.ResolutionResourceMetadata{}, + Metadata: types.NewDereferencedResource( + testconstants.ExistentDid, + testconstants.ValidResource[0].Metadata, + ), }, expectedError: nil, }, @@ -99,7 +102,10 @@ var _ = DescribeTable("Test DereferenceResourceMetadata method", func(testCase d Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, + Metadata: types.NewDereferencedResource( + testconstants.ExistentDid, + testconstants.ValidResource[0].Metadata, + ), }, expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, true), }, @@ -119,7 +125,8 @@ var _ = DescribeTable("Test DereferenceResourceMetadata method", func(testCase d Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, + ContentStream: nil, + Metadata: nil, }, expectedError: types.NewNotFoundError(testconstants.ExistentDid, types.DIDJSONLD, nil, true), }, @@ -139,7 +146,8 @@ var _ = DescribeTable("Test DereferenceResourceMetadata method", func(testCase d Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, + ContentStream: nil, + Metadata: nil, }, expectedError: types.NewNotFoundError(testconstants.ExistentDid, types.DIDJSONLD, nil, true), }, diff --git a/tests/unit/resource/common/resource_dereference_resource_data__with_metadata_test.go b/tests/unit/resource/common/resource_dereference_resource_data__with_metadata_test.go new file mode 100644 index 00000000..65b1ada1 --- /dev/null +++ b/tests/unit/resource/common/resource_dereference_resource_data__with_metadata_test.go @@ -0,0 +1,146 @@ +//go:build unit + +package common + +import ( + "strings" + + . "github.com/onsi/ginkgo/v2" + . "github.com/onsi/gomega" + + "github.com/cheqd/did-resolver/services" + testconstants "github.com/cheqd/did-resolver/tests/constants" + utils "github.com/cheqd/did-resolver/tests/unit" + "github.com/cheqd/did-resolver/types" +) + +type dereferenceResourceDataWithMetadataTestCase struct { + did string + resourceId string + dereferencingType types.ContentType + expectedResourceDereferencing *types.ResourceDereferencing + expectedError *types.IdentityError +} + +var _ = DescribeTable("Test DereferenceResourceData method", func(testCase dereferenceResourceDataTestCase) { + resourceService := services.NewResourceService(testconstants.ValidMethod, utils.MockLedger) + + expectedContentType := types.ContentType(testconstants.ValidResource[0].Metadata.MediaType) + dereferencingResult, err := resourceService.DereferenceResourceDataWithMetadata(testCase.did, testCase.resourceId, testCase.dereferencingType) + if err != nil { + Expect(testCase.expectedError.Code).To(Equal(err.Code)) + Expect(testCase.expectedError.Message).To(Equal(err.Message)) + } else { + Expect(testCase.expectedResourceDereferencing.ContentStream.GetBytes()).To(Equal(dereferencingResult.ContentStream.GetBytes())) + Expect(testCase.expectedResourceDereferencing.Metadata).To(Equal(dereferencingResult.Metadata)) + Expect(expectedContentType).To(Equal(dereferencingResult.DereferencingMetadata.ContentType)) + Expect(testCase.expectedResourceDereferencing.DereferencingMetadata.DidProperties).To(Equal(dereferencingResult.DereferencingMetadata.DidProperties)) + Expect(dereferencingResult.DereferencingMetadata.ResolutionError).To(BeEmpty()) + } +}, + + Entry( + "can get resource data with an existent DID and resourceId", + dereferenceResourceDataTestCase{ + did: testconstants.ExistentDid, + resourceId: testconstants.ExistentResourceId, + dereferencingType: types.JSON, + expectedResourceDereferencing: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ + DidProperties: types.DidProperties{ + DidString: testconstants.ExistentDid, + MethodSpecificId: testconstants.ValidIdentifier, + Method: testconstants.ValidMethod, + }, + }, + ContentStream: &testconstants.ValidResourceDereferencing, + Metadata: types.NewDereferencedResource( + testconstants.ExistentDid, + testconstants.ValidResource[0].Metadata, + ), + }, + expectedError: nil, + }, + ), + + Entry( + "can get resource data with an existent DID and upper case resourceId", + dereferenceResourceDataTestCase{ + did: testconstants.ExistentDid, + resourceId: strings.ToUpper(testconstants.ExistentResourceId), + dereferencingType: types.JSON, + expectedResourceDereferencing: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ + DidProperties: types.DidProperties{ + DidString: testconstants.ExistentDid, + MethodSpecificId: testconstants.ValidIdentifier, + Method: testconstants.ValidMethod, + }, + }, + ContentStream: &testconstants.ValidResourceDereferencing, + Metadata: types.NewDereferencedResource( + testconstants.ExistentDid, + testconstants.ValidResource[0].Metadata, + ), + }, + expectedError: nil, + }, + ), + + Entry( + "cannot get resource data with not existent DID and a valid resourceId", + dereferenceResourceDataTestCase{ + did: testconstants.NotExistentTestnetDid, + resourceId: testconstants.ValidIdentifier, + dereferencingType: types.DIDJSON, + expectedResourceDereferencing: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ + DidProperties: types.DidProperties{ + DidString: testconstants.NotExistentTestnetDid, + MethodSpecificId: testconstants.NotExistentIdentifier, + Method: testconstants.ValidMethod, + }, + }, + }, + expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, true), + }, + ), + + Entry( + "cannot get resource data with an existent DID, but not existent resourceId", + dereferenceResourceDataTestCase{ + did: testconstants.ExistentDid, + resourceId: testconstants.ValidIdentifier, + dereferencingType: types.DIDJSON, + expectedResourceDereferencing: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ + DidProperties: types.DidProperties{ + DidString: testconstants.ExistentDid, + MethodSpecificId: testconstants.ValidIdentifier, + Method: testconstants.ValidMethod, + }, + }, + }, + expectedError: types.NewNotFoundError(testconstants.ExistentDid, types.DIDJSONLD, nil, true), + }, + ), + + Entry( + "cannot get resource data with not existent DID and resourceId", + dereferenceResourceDataTestCase{ + did: testconstants.NotExistentTestnetDid, + resourceId: testconstants.NotExistentIdentifier, + dereferencingType: types.DIDJSON, + expectedResourceDereferencing: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ + DidProperties: types.DidProperties{ + DidString: testconstants.NotExistentTestnetDid, + MethodSpecificId: testconstants.NotExistentIdentifier, + Method: testconstants.ValidMethod, + }, + }, + }, + expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, true), + }, + ), +) diff --git a/tests/unit/resource/common/resource_dereference_resource_data_test.go b/tests/unit/resource/common/resource_dereference_resource_data_test.go index d633725c..4b1c2fd7 100644 --- a/tests/unit/resource/common/resource_dereference_resource_data_test.go +++ b/tests/unit/resource/common/resource_dereference_resource_data_test.go @@ -54,7 +54,6 @@ var _ = DescribeTable("Test DereferenceResourceData method", func(testCase deref }, }, ContentStream: &testconstants.ValidResourceDereferencing, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: nil, }, @@ -75,7 +74,6 @@ var _ = DescribeTable("Test DereferenceResourceData method", func(testCase deref }, }, ContentStream: &testconstants.ValidResourceDereferencing, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: nil, }, @@ -95,7 +93,6 @@ var _ = DescribeTable("Test DereferenceResourceData method", func(testCase deref Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, true), }, @@ -115,7 +112,6 @@ var _ = DescribeTable("Test DereferenceResourceData method", func(testCase deref Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: types.NewNotFoundError(testconstants.ExistentDid, types.DIDJSONLD, nil, true), }, @@ -135,7 +131,6 @@ var _ = DescribeTable("Test DereferenceResourceData method", func(testCase deref Method: testconstants.ValidMethod, }, }, - Metadata: types.ResolutionResourceMetadata{}, }, expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, true), }, diff --git a/tests/unit/resource/request/request_service_dereference_resource_data_test.go b/tests/unit/resource/request/request_service_dereference_resource_data_test.go index 24dccf78..8088e1cd 100644 --- a/tests/unit/resource/request/request_service_dereference_resource_data_test.go +++ b/tests/unit/resource/request/request_service_dereference_resource_data_test.go @@ -118,7 +118,7 @@ var _ = DescribeTable("Test ResourceDataEchoHandler function", func(testCase res testconstants.ExistentDid, testconstants.ExistentResourceId, ), - resolutionType: types.JSON, + resolutionType: types.TEXT, expectedResource: nil, expectedError: types.NewRepresentationNotSupportedError(testconstants.ExistentDid, types.JSON, nil, true), }, diff --git a/tests/unit/resource/request/request_service_dereference_resource_metadata_test.go b/tests/unit/resource/request/request_service_dereference_resource_metadata_test.go index 3313a837..14da8515 100644 --- a/tests/unit/resource/request/request_service_dereference_resource_metadata_test.go +++ b/tests/unit/resource/request/request_service_dereference_resource_metadata_test.go @@ -12,7 +12,6 @@ import ( . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" - resourceTypes "github.com/cheqd/cheqd-node/api/v2/cheqd/resource/v2" resourceServices "github.com/cheqd/did-resolver/services/resource" testconstants "github.com/cheqd/did-resolver/tests/constants" utils "github.com/cheqd/did-resolver/tests/unit" @@ -28,7 +27,7 @@ type DereferencingResult struct { type resourceMetadataTestCase struct { didURL string resolutionType types.ContentType - expectedDereferencingResult *DereferencingResult + expectedDereferencingResult *types.ResourceDereferencing expectedError error } @@ -36,9 +35,7 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase request := httptest.NewRequest(http.MethodGet, testCase.didURL, nil) context, rec := utils.SetupEmptyContext(request, testCase.resolutionType, utils.MockLedger) - if (testCase.resolutionType == "" || testCase.resolutionType == types.DIDJSONLD) && testCase.expectedError == nil { - testCase.expectedDereferencingResult.ContentStream.AddContext(types.DIDSchemaJSONLD) - } else if testCase.expectedDereferencingResult.ContentStream != nil { + if testCase.expectedDereferencingResult.ContentStream != nil { testCase.expectedDereferencingResult.ContentStream.RemoveContext() } expectedContentType := utils.DefineContentType(testCase.expectedDereferencingResult.DereferencingMetadata.ContentType, testCase.resolutionType) @@ -48,10 +45,9 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase if testCase.expectedError != nil { Expect(testCase.expectedError.Error()).To(Equal(err.Error())) } else { - var dereferencingResult DereferencingResult + var dereferencingResult *types.ResourceDereferencing Expect(err).To(BeNil()) Expect(json.Unmarshal(rec.Body.Bytes(), &dereferencingResult)).To(BeNil()) - Expect(testCase.expectedDereferencingResult.ContentStream, dereferencingResult.ContentStream) Expect(testCase.expectedDereferencingResult.Metadata).To(Equal(dereferencingResult.Metadata)) Expect(expectedContentType).To(Equal(dereferencingResult.DereferencingMetadata.ContentType)) Expect(testCase.expectedDereferencingResult.DereferencingMetadata.DidProperties).To(Equal(dereferencingResult.DereferencingMetadata.DidProperties)) @@ -67,19 +63,18 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase testconstants.ExistentResourceId, ), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedDereferencingResult: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.ExistentDid, MethodSpecificId: testconstants.ValidIdentifier, Method: testconstants.ValidMethod, }, }, - ContentStream: types.NewDereferencedResourceListStruct( + Metadata: types.NewDereferencedResource( testconstants.ExistentDid, - []*resourceTypes.Metadata{testconstants.ValidResource[0].Metadata}, + testconstants.ValidResource[0].Metadata, ), - Metadata: &types.ResolutionDidDocMetadata{}, }, expectedError: nil, }, @@ -94,8 +89,8 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase testconstants.ExistentResourceId, ), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedDereferencingResult: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.NotExistentTestnetDid, MethodSpecificId: testconstants.NotExistentIdentifier, @@ -103,7 +98,7 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase }, }, ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: types.NewNotFoundError(testconstants.NotExistentTestnetDid, types.DIDJSONLD, nil, false), }, @@ -118,8 +113,8 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase testconstants.ExistentResourceId, ), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedDereferencingResult: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.InvalidDid, MethodSpecificId: testconstants.InvalidIdentifier, @@ -127,7 +122,7 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase }, }, ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: types.NewMethodNotSupportedError(testconstants.InvalidDid, types.DIDJSONLD, nil, false), }, @@ -142,8 +137,8 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase testconstants.NotExistentIdentifier, ), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedDereferencingResult: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.ExistentDid, MethodSpecificId: testconstants.ValidIdentifier, @@ -151,7 +146,7 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase }, }, ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: types.NewNotFoundError(testconstants.ExistentDid, types.DIDJSONLD, nil, true), }, @@ -166,8 +161,8 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase testconstants.InvalidIdentifier, ), resolutionType: types.DIDJSONLD, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + expectedDereferencingResult: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.ExistentDid, MethodSpecificId: testconstants.ValidIdentifier, @@ -175,7 +170,7 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase }, }, ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: types.NewInvalidDidUrlError(testconstants.ExistentDid, types.DIDJSONLD, nil, true), }, @@ -189,9 +184,9 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase testconstants.ExistentDid, testconstants.ExistentResourceId, ), - resolutionType: types.JSON, - expectedDereferencingResult: &DereferencingResult{ - DereferencingMetadata: &types.DereferencingMetadata{ + resolutionType: types.TEXT, + expectedDereferencingResult: &types.ResourceDereferencing{ + DereferencingMetadata: types.DereferencingMetadata{ DidProperties: types.DidProperties{ DidString: testconstants.ExistentDid, MethodSpecificId: testconstants.ValidIdentifier, @@ -199,7 +194,7 @@ var _ = DescribeTable("Test ResourceMetadataEchoHandler function", func(testCase }, }, ContentStream: nil, - Metadata: &types.ResolutionDidDocMetadata{}, + Metadata: nil, }, expectedError: types.NewRepresentationNotSupportedError(testconstants.ExistentDid, types.JSON, nil, false), }, diff --git a/types/constants.go b/types/constants.go index e871b82f..5609bc6c 100644 --- a/types/constants.go +++ b/types/constants.go @@ -3,10 +3,14 @@ package types type ContentType string const ( - DIDJSON ContentType = "application/did+json" - DIDJSONLD ContentType = "application/did+ld+json" - JSONLD ContentType = "application/ld+json" - JSON ContentType = "application/json" + DIDJSON ContentType = "application/did+json" + DIDJSONLD ContentType = "application/did+ld+json" + JSONLD ContentType = "application/ld+json" + JSON ContentType = "application/json" + DIDRES ContentType = "application/did" + W3IDDIDRES string = "https://w3id.org/did-resolution" + TEXT ContentType = "text/plain" + W3IDDIDURL string = "https://w3id.org/did-url-dereferencing" ) func (cType ContentType) IsSupported() bool { @@ -14,6 +18,8 @@ func (cType ContentType) IsSupported() bool { DIDJSON: true, DIDJSONLD: true, JSONLD: true, + DIDRES: true, + JSON: true, } return supportedTypes[cType] } diff --git a/types/resolution_metadata.go b/types/resolution_metadata.go index 9825d04d..968e6e78 100644 --- a/types/resolution_metadata.go +++ b/types/resolution_metadata.go @@ -1,13 +1,14 @@ package types import ( + "errors" "time" "github.com/cheqd/did-resolver/utils" ) type ResolutionMetadata struct { - ContentType ContentType `json:"contentType,omitempty" example:"application/did+ld+json"` + ContentType ContentType `json:"contentType,omitempty" example:"application/ld+json"` ResolutionError string `json:"error,omitempty"` Retrieved string `json:"retrieved,omitempty" example:"2021-09-01T12:00:00Z"` DidProperties DidProperties `json:"did,omitempty"` @@ -22,7 +23,7 @@ type DidProperties struct { type DidResolution struct { Context string `json:"@context,omitempty"` ResolutionMetadata ResolutionMetadata `json:"didResolutionMetadata"` - Did *DidDoc `json:"didDocument"` + Did *DidDoc `json:"didDocument,omitempty"` Metadata ResolutionDidDocMetadata `json:"didDocumentMetadata"` } @@ -41,6 +42,9 @@ func (r DidResolution) IsRedirect() bool { } func (r DidResolution) GetServiceByName(serviceName string) (string, error) { + if r.Did == nil { + return "", errors.New("did document is nil") + } return r.Did.GetServiceByName(serviceName) } diff --git a/types/resource_data.go b/types/resource_data.go new file mode 100644 index 00000000..37272c00 --- /dev/null +++ b/types/resource_data.go @@ -0,0 +1,39 @@ +package types + +import ( + "encoding/json" + + "github.com/rs/zerolog/log" +) + +type ResourceData struct { + Content map[string]interface{} +} + +func NewResourceData(data []byte) (*ResourceData, error) { + var parsedData map[string]interface{} + + err := json.Unmarshal(data, &parsedData) + if err != nil { + return nil, err + } + return &ResourceData{Content: parsedData}, nil +} + +func (e *ResourceData) AddContext(newProtocol string) {} +func (e *ResourceData) RemoveContext() {} +func (e *ResourceData) GetBytes() []byte { + bytes, err := json.Marshal(e.Content) + if err != nil { + log.Info().Msg("Failed to marshal resource") + return []byte{} + } + return bytes +} + +func (e *ResourceData) MarshalJSON() ([]byte, error) { + return json.Marshal(e.Content) +} + +func (e *ResourceData) GetContentType() string { return "" } +func (e *ResourceData) IsRedirect() bool { return false } diff --git a/types/resource_dereferencing.go b/types/resource_dereferencing.go index e6614acc..62362429 100644 --- a/types/resource_dereferencing.go +++ b/types/resource_dereferencing.go @@ -1,10 +1,10 @@ package types type ResourceDereferencing struct { - Context string `json:"@context,omitempty" example:"https://w3id.org/did-resolution/v1"` - DereferencingMetadata DereferencingMetadata `json:"dereferencingMetadata"` - ContentStream ContentStreamI `json:"contentStream"` - Metadata ResolutionResourceMetadata `json:"contentMetadata"` + Context string `json:"@context,omitempty" example:"https://w3id.org/did-resolution/v1"` + DereferencingMetadata DereferencingMetadata `json:"dereferencingMetadata"` + ContentStream ContentStreamI `json:"contentStream"` + Metadata *DereferencedResource `json:"contentMetadata"` } func NewResourceDereferencingFromContent(did string, contentType ContentType, contentStream ContentStreamI) *ResourceDereferencing { diff --git a/types/resource_metadata.go b/types/resource_metadata.go index 50ac1ba1..02391b34 100644 --- a/types/resource_metadata.go +++ b/types/resource_metadata.go @@ -1,3 +1,3 @@ package types -type ResolutionResourceMetadata struct{} +type ResolutionResourceMetadata interface{} diff --git a/types/supported_queries.go b/types/supported_queries.go index 1b6dc39d..37560eee 100644 --- a/types/supported_queries.go +++ b/types/supported_queries.go @@ -40,6 +40,7 @@ var DidSupportedQueries = SupportedQueriesT{ VersionId, VersionTime, TransformKeys, + ResourceMetadata, ServiceQ, RelativeRef, Metadata,