@@ -5,42 +5,58 @@ import "./main.tsp";
5
5
import "../main.tsp" ;
6
6
7
7
using TypeSpec .Http ;
8
+ using polyproto .models .errors ;
8
9
9
10
namespace polyproto .mls .routes {
10
11
/**
11
12
* Create a new MLS group
12
13
*/
13
14
@ post
14
15
@ route ("/groups" )
15
- op createGroup (@ body keyPackage : KeyPackage ): Group ;
16
+ op createGroup (@ body keyPackage : KeyPackage ): {
17
+ @ statusCode _s : 200 ;
18
+ @ body _b : Group ;
19
+ };
16
20
17
21
/**
18
22
* Get information about an MLS group
19
23
*/
20
24
@ get
21
25
@ route ("/groups/{groupId}" )
22
- op getGroup (@ path groupId : string ): Group ;
26
+ op getGroup (@ path groupId : string ): {
27
+ @ statusCode _s : 200 ;
28
+ @ body _b : Group ;
29
+ } | NotFoundOrForbidden ;
23
30
24
31
/**
25
32
* Submit a proposal to modify the group
26
33
*/
27
34
@ post
28
35
@ route ("/groups/{groupId}/proposals" )
29
- op submitProposal (@ path groupId : string , @ body proposal : Proposal ): void ;
36
+ op submitProposal (
37
+ @ path groupId : string ,
38
+ @ body proposal : Proposal ,
39
+ ): void | NotFoundOrForbidden ;
30
40
31
41
/**
32
42
* Submit a commit to apply pending proposals
33
43
*/
34
44
@ post
35
45
@ route ("/groups/{groupId}/commits" )
36
- op submitCommit (@ path groupId : string , @ body commit : Commit ): Welcome ;
46
+ op submitCommit (
47
+ @ path groupId : string ,
48
+ @ body commit : Commit ,
49
+ ): Welcome | NotFoundOrForbidden ;
37
50
38
51
/**
39
52
* Get the current state of a group member
40
53
*/
41
54
@ get
42
55
@ route ("/groups/{groupId}/members/{memberId}" )
43
- op getMember (@ path groupId : string , @ path memberId : string ): GroupMember ;
56
+ op getMember (
57
+ @ path groupId : string ,
58
+ @ path memberId : string ,
59
+ ): GroupMember | NotFoundOrForbidden ;
44
60
45
61
/**
46
62
* Update a member's key package
@@ -51,26 +67,29 @@ namespace polyproto.mls.routes {
51
67
@ path groupId : string ,
52
68
@ path memberId : string ,
53
69
@ body keyPackage : KeyPackage ,
54
- ): void ;
70
+ ): void | NotFoundOrForbidden ;
55
71
56
72
/**
57
73
* Remove a member from the group
58
74
*/
59
75
@ delete
60
76
@ route ("/groups/{groupId}/members/{memberId}" )
61
- op removeMember (@ path groupId : string , @ path memberId : string ): void ;
77
+ op removeMember (
78
+ @ path groupId : string ,
79
+ @ path memberId : string ,
80
+ ): void | NotFoundOrForbidden ;
62
81
63
82
/**
64
83
* Get all pending proposals for a group
65
84
*/
66
85
@ get
67
86
@ route ("/groups/{groupId}/proposals" )
68
- op getProposals (@ path groupId : string ): Proposal [];
87
+ op getProposals (@ path groupId : string ): Proposal [] | NotFoundOrForbidden ;
69
88
70
89
/**
71
90
* Get the latest commit for a group
72
91
*/
73
92
@ get
74
93
@ route ("/groups/{groupId}/commits/latest" )
75
- op getLatestCommit (@ path groupId : string ): Commit ;
94
+ op getLatestCommit (@ path groupId : string ): Commit | NotFoundOrForbidden ;
76
95
}
0 commit comments