tangled
alpha
login
or
join now
mackuba.eu
/
didkit
1
fork
atom
A library for handling DID identifiers used in Bluesky AT Protocol
1
fork
atom
overview
issues
pulls
pipelines
refactored alsoKnownAs parsing
mackuba.eu
2 years ago
6195579b
ca39298a
+20
-18
3 changed files
expand all
collapse all
unified
split
lib
didkit
at_handles.rb
document.rb
plc_operation.rb
+14
lib/didkit/at_handles.rb
···
1
1
+
module DIDKit
2
2
+
module AtHandles
3
3
+
class FormatError < StandardError
4
4
+
end
5
5
+
6
6
+
def parse_also_known_as(aka)
7
7
+
raise FormatError, "Invalid alsoKnownAs: #{aka.inspect}" unless aka.is_a?(Array)
8
8
+
raise FormatError, "Invalid alsoKnownAs: #{aka.inspect}" unless aka.all? { |x| x.is_a?(String) }
9
9
+
raise FormatError, "Invalid alsoKnownAs: #{aka.inspect}" unless aka.all? { |x| x =~ %r(\Aat://[^/]+\z) }
10
10
+
11
11
+
aka.map { |x| x.gsub('at://', '') }
12
12
+
end
13
13
+
end
14
14
+
end
+3
-9
lib/didkit/document.rb
···
1
1
+
require_relative 'at_handles'
1
2
require_relative 'resolver'
2
3
require_relative 'service_record'
3
4
require_relative 'services'
···
7
8
class FormatError < StandardError
8
9
end
9
10
11
11
+
include AtHandles
10
12
include Services
11
13
12
14
attr_reader :json, :did, :handles, :services
···
36
38
ServiceRecord.new(id.gsub(/^#/, ''), type, endpoint)
37
39
}
38
40
39
39
-
if aka = json['alsoKnownAs']
40
40
-
raise FormatError, "Invalid alsoKnownAs" unless aka.is_a?(Array)
41
41
-
raise FormatError, "Invalid alsoKnownAs" unless aka.all? { |x| x.is_a?(String) }
42
42
-
raise FormatError, "Invalid alsoKnownAs" unless aka.all? { |x| x =~ %r(\Aat://[^/]+\z) }
43
43
-
44
44
-
@handles = aka.map { |x| x.gsub('at://', '') }
45
45
-
else
46
46
-
@handles = []
47
47
-
end
41
41
+
@handles = parse_also_known_as(json['alsoKnownAs'] || [])
48
42
end
49
43
50
44
def get_validated_handle
+3
-9
lib/didkit/plc_operation.rb
···
1
1
require 'time'
2
2
3
3
+
require_relative 'at_handles'
3
4
require_relative 'service_record'
4
5
require_relative 'services'
5
6
···
8
9
class FormatError < StandardError
9
10
end
10
11
12
12
+
include AtHandles
11
13
include Services
12
14
13
15
attr_reader :json, :did, :created_at, :type, :handles, :services
···
49
51
ServiceRecord.new(k, type, endpoint)
50
52
}
51
53
52
52
-
if aka = operation['alsoKnownAs']
53
53
-
raise FormatError, "Invalid alsoKnownAs: #{aka.inspect}" unless aka.is_a?(Array)
54
54
-
raise FormatError, "Invalid alsoKnownAs: #{aka.inspect}" unless aka.all? { |x| x.is_a?(String) }
55
55
-
raise FormatError, "Invalid alsoKnownAs: #{aka.inspect}" unless aka.all? { |x| x =~ %r(\Aat://[^/]+\z) }
56
56
-
57
57
-
@handles = aka.map { |x| x.gsub('at://', '') }
58
58
-
else
59
59
-
@handles = []
60
60
-
end
54
54
+
@handles = parse_also_known_as(operation['alsoKnownAs'] || [])
61
55
end
62
56
end
63
57
end