@@ -5,42 +5,58 @@ import "./main.tsp";
55import "../main.tsp" ;
66
77using TypeSpec .Http ;
8+ using polyproto .models .errors ;
89
910namespace polyproto .mls .routes {
1011 /**
1112 * Create a new MLS group
1213 */
1314 @ post
1415 @ route ("/groups" )
15- op createGroup (@ body keyPackage : KeyPackage ): Group ;
16+ op createGroup (@ body keyPackage : KeyPackage ): {
17+ @ statusCode _s : 200 ;
18+ @ body _b : Group ;
19+ };
1620
1721 /**
1822 * Get information about an MLS group
1923 */
2024 @ get
2125 @ 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 ;
2330
2431 /**
2532 * Submit a proposal to modify the group
2633 */
2734 @ post
2835 @ 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 ;
3040
3141 /**
3242 * Submit a commit to apply pending proposals
3343 */
3444 @ post
3545 @ 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 ;
3750
3851 /**
3952 * Get the current state of a group member
4053 */
4154 @ get
4255 @ 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 ;
4460
4561 /**
4662 * Update a member's key package
@@ -51,26 +67,29 @@ namespace polyproto.mls.routes {
5167 @ path groupId : string ,
5268 @ path memberId : string ,
5369 @ body keyPackage : KeyPackage ,
54- ): void ;
70+ ): void | NotFoundOrForbidden ;
5571
5672 /**
5773 * Remove a member from the group
5874 */
5975 @ delete
6076 @ 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 ;
6281
6382 /**
6483 * Get all pending proposals for a group
6584 */
6685 @ get
6786 @ route ("/groups/{groupId}/proposals" )
68- op getProposals (@ path groupId : string ): Proposal [];
87+ op getProposals (@ path groupId : string ): Proposal [] | NotFoundOrForbidden ;
6988
7089 /**
7190 * Get the latest commit for a group
7291 */
7392 @ get
7493 @ route ("/groups/{groupId}/commits/latest" )
75- op getLatestCommit (@ path groupId : string ): Commit ;
94+ op getLatestCommit (@ path groupId : string ): Commit | NotFoundOrForbidden ;
7695}
0 commit comments