-
Notifications
You must be signed in to change notification settings - Fork 1
/
GetCommunityStreamSearch.pqm
93 lines (93 loc) · 3.64 KB
/
GetCommunityStreamSearch.pqm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
let
GetCommunityStreamSearch = (
token as text, resource as text, apiVersion as text, communityId as text, query as text
) as table =>
let
// construct query for community streams
dataQuery = "/api/" & apiVersion & "/Search/Communities/" & communityId & "/Streams?query=" & query,
dataQueryPreview = Text.Replace(dataQuery, "/api/v1/", "/api/v1-preview/"),
getJsonQuery = Json.Document(
Web.Contents(resource, [
RelativePath = dataQueryPreview,
Headers = [
Authorization = token
]
])
),
tableOfData = Table.FromList(getJsonQuery, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
expandedTableOfData = Table.ExpandRecordColumn(
tableOfData,
"Column1",
{
"Id",
"Name",
"TypeId",
"Description",
"Self",
"TenantId",
"TenantName",
"NamespaceId",
"CommunityId"
},
{
"Id",
"Name",
"TypeId",
"Description",
"Self",
"TenantId",
"TenantName",
"NamespaceId",
"CommunityId"
}
)
in
expandedTableOfData,
GetCommunityStreamSearchType = type function (
token as (
type text meta [
Documentation.FieldCaption = "Token",
Documentation.FieldDescription = "OAuth bearer token. Generate using GetToken.",
Documentation.SampleValues = {"Generate using GetToken()"}
]
),
resource as (
type text meta [
Documentation.FieldCaption = "Resource",
Documentation.FieldDescription = "Region Endpoint.",
Documentation.SampleValues = {"https://uswe.datahub.connect.aveva.com"}
]
),
apiVersion as (
type text meta [
Documentation.FieldCaption = "API Version",
Documentation.FieldDescription = "API Version.",
Documentation.SampleValues = {"v1"}
]
),
communityId as (
type text meta [
Documentation.FieldCaption = "Community Id",
Documentation.FieldDescription = "CommunityIdentifier.",
Documentation.SampleValues = {"Enter Community Id"}
]
),
query as (
type text meta [
Documentation.FieldCaption = "Query",
Documentation.FieldDescription = "Parameter representing a Community Stream search.",
Documentation.SampleValues = {"*"}
]
)
) as binary meta [
Documentation.Name = "Get Community Stream Search",
Documentation.LongDescription = "Retrieves Streams in a Community based on query.
<br>
<br>     <b>Token</b>: OAuth bearer token. Generate using GetToken().
<br>     <b>Resource</b>: Region Endpoint.
<br>     <b>API Version</b>: API Version.
<br>     <b>Community Id</b>: Community Identifier.
<br>     <b>Query</b>: Parameter representing a Community Stream search."
]
in
Value.ReplaceType(GetCommunityStreamSearch, GetCommunityStreamSearchType)