@@ -9,17 +9,17 @@ import gleam/uri.{type Uri}
99import lustre/effect . { type Effect }
1010import rsvp
1111
12- import constants
12+ import constant
1313import core . {
14- type CategoryEditablePart , type ContentItemId , type LoginData ,
15- type Msg , type PostEditablePart , ApiCreatedCategory , ApiCreatedPost ,
14+ type CategoryEditablePart , type ContentItemId , type LoginData , type Msg ,
15+ type PostEditablePart , ApiCreatedCategory , ApiCreatedPost ,
1616 ApiDeletedContentItem , ApiLoginReturned , ApiRenderedMarkdown ,
17- ApiReturnedCategories , ApiReturnedLogOutDone ,
18- ApiReturnedSingleCategory , ApiReturnedSinglePost , ApiReturnedSlug ,
19- ApiReturnedUsers , ApiUpdatedCategory , ApiUpdatedPost , BookId ,
20- CategoryEditablePart , CategoryId , LoginData , PostId , PresentationId ,
17+ ApiReturnedCategories , ApiReturnedLogOutDone , ApiReturnedSingleCategory ,
18+ ApiReturnedSinglePost , ApiReturnedSlug , ApiReturnedUsers , ApiUpdatedCategory ,
19+ ApiUpdatedPost , BookId , CategoryEditablePart , CategoryId , LoginData , PostId ,
20+ PresentationId ,
2121}
22- import decoders . { user_decoder }
22+ import decoder . { user_decoder }
2323
2424pub fn login_via_api ( login_data : LoginData ) -> Effect ( Msg ( a) ) {
2525 let LoginData ( email : , password : ) = login_data
@@ -30,7 +30,7 @@ pub fn login_via_api(login_data: LoginData) -> Effect(Msg(a)) {
3030 ] )
3131 let user_decoder = user_decoder ( )
3232 let handler = rsvp . expect_json ( user_decoder , ApiLoginReturned )
33- rsvp . post ( constants . api_login , post_data , handler )
33+ rsvp . post ( constant . api_login , post_data , handler )
3434}
3535
3636pub fn load_posts (
@@ -39,7 +39,7 @@ pub fn load_posts(
3939 cat_id : Option ( String ) ,
4040) -> Effect ( Msg ( a) ) {
4141 let response_decoder =
42- decoders . make_listing_api_decoder ( decoders . mini_post_decoder ( ) )
42+ decoder . make_listing_api_decoder ( decoder . mini_post_decoder ( ) )
4343 let handler = rsvp . expect_json ( response_decoder , core . ApiReturnedPosts )
4444 let query_list = [ # ( "page" , int . to_string ( page ) ) ]
4545 let query_list = case q {
@@ -51,7 +51,7 @@ pub fn load_posts(
5151 None -> query_list
5252 }
5353 let query = uri . query_to_string ( query_list ) |> Some
54- let url = uri . Uri ( .. uri . empty , path : constants . api_posts , query : )
54+ let url = uri . Uri ( .. uri . empty , path : constant . api_posts , query : )
5555 rsvp . get ( uri . to_string ( url ) , handler )
5656}
5757
@@ -62,43 +62,40 @@ pub fn initiate_logout() -> Effect(Msg(a)) {
6262
6363pub fn load_categories ( page : Int , sort_by_featured : Bool ) -> Effect ( Msg ( a) ) {
6464 let response_decoder =
65- decoders . make_listing_api_decoder ( decoders . make_category_decoder ( ) )
65+ decoder . make_listing_api_decoder ( decoder . make_category_decoder ( ) )
6666 let handler = rsvp . expect_json ( response_decoder , ApiReturnedCategories )
6767 let query_params = [ # ( "page" , int . to_string ( page ) ) ]
6868 let query_params = case sort_by_featured {
6969 True -> [ # ( "sort" , "featured" ) , .. query_params ]
7070 False -> query_params
7171 }
7272 let query = uri . query_to_string ( query_params ) |> Some
73- let url = uri . Uri ( .. uri . empty , path : constants . api_categories , query : )
73+ let url = uri . Uri ( .. uri . empty , path : constant . api_categories , query : )
7474 rsvp . get ( uri . to_string ( url ) , handler )
7575}
7676
7777pub fn load_categories_by_url ( url : Uri ) -> Effect ( Msg ( a) ) {
7878 let response_decoder =
79- decoders . make_listing_api_decoder ( decoders . make_category_decoder ( ) )
79+ decoder . make_listing_api_decoder ( decoder . make_category_decoder ( ) )
8080 let handler = rsvp . expect_json ( response_decoder , ApiReturnedCategories )
8181 rsvp . get ( uri . to_string ( url ) , handler )
8282}
8383
8484pub fn load_single_post ( id : String ) -> Effect ( Msg ( a) ) {
8585 let handler =
86- rsvp . expect_json ( decoders . make_post_decoder ( ) , ApiReturnedSinglePost )
87- rsvp . get ( constants . api_posts <> id , handler )
86+ rsvp . expect_json ( decoder . make_post_decoder ( ) , ApiReturnedSinglePost )
87+ rsvp . get ( constant . api_posts <> id , handler )
8888}
8989
9090pub fn load_single_category ( id : String ) {
9191 let handler =
92- rsvp . expect_json (
93- decoders . make_category_decoder ( ) ,
94- ApiReturnedSingleCategory ,
95- )
96- rsvp . get ( constants . api_categories <> id , handler )
92+ rsvp . expect_json ( decoder . make_category_decoder ( ) , ApiReturnedSingleCategory )
93+ rsvp . get ( constant . api_categories <> id , handler )
9794}
9895
9996pub fn initiate_generate_slug ( title : String ) -> Effect ( Msg ( a) ) {
10097 let handler = rsvp . expect_text ( ApiReturnedSlug )
101- rsvp . post ( constants . api_slug_generator , json . string ( title ) , handler )
98+ rsvp . post ( constant . api_slug_generator , json . string ( title ) , handler )
10299}
103100
104101pub fn update_post_via_api (
@@ -107,9 +104,9 @@ pub fn update_post_via_api(
107104 stay : Bool ,
108105) -> Effect ( Msg ( a) ) {
109106 let body = dump_post_to_json ( data ) |> json . to_string
110- let decoder = decoders . make_post_decoder ( )
107+ let decoder = decoder . make_post_decoder ( )
111108 let handler = rsvp . expect_json ( decoder , ApiUpdatedPost ( _, stay ) )
112- let url = constants . api_posts <> id
109+ let url = constant . api_posts <> id
113110 case
114111 rsvp . parse_relative_uri ( url )
115112 |> result . try ( request . from_uri )
@@ -129,9 +126,9 @@ pub fn update_post_via_api(
129126
130127pub fn create_post_via_api ( data : PostEditablePart ) {
131128 let body = dump_post_to_json ( data )
132- let decoder = decoders . make_post_decoder ( )
129+ let decoder = decoder . make_post_decoder ( )
133130 let handler = rsvp . expect_json ( decoder , ApiCreatedPost )
134- rsvp . post ( constants . api_posts , body , handler )
131+ rsvp . post ( constant . api_posts , body , handler )
135132}
136133
137134fn dump_post_to_json ( post : PostEditablePart ) -> json . Json {
@@ -149,7 +146,7 @@ fn dump_post_to_json(post: PostEditablePart) -> json.Json {
149146
150147pub fn try_render_markdown_via_api ( text : String ) -> Effect ( Msg ( a) ) {
151148 let handler = rsvp . expect_text ( ApiRenderedMarkdown )
152- let url = constants . api_render_markdown
149+ let url = constant . api_render_markdown
153150 case
154151 rsvp . parse_relative_uri ( url )
155152 |> result . try ( request . from_uri )
@@ -168,13 +165,21 @@ pub fn try_render_markdown_via_api(text: String) -> Effect(Msg(a)) {
168165}
169166
170167pub fn load_users ( ) -> Effect ( Msg ( a) ) {
171- let response_decoder = decode . list ( decoders . mini_user_decoder ( ) )
168+ let response_decoder = decode . list ( decoder . mini_user_decoder ( ) )
172169 let handler = rsvp . expect_json ( response_decoder , ApiReturnedUsers )
173- rsvp . get ( constants . api_users , handler )
170+ rsvp . get ( constant . api_users , handler )
174171}
175172
176173fn dump_category_to_json ( category : CategoryEditablePart ) -> json . Json {
177- let CategoryEditablePart ( title : , slug : , title_vi : , header_color : , featured_order : , summary_en : , summary_vi : ) = category
174+ let CategoryEditablePart (
175+ title : ,
176+ slug : ,
177+ title_vi : ,
178+ header_color : ,
179+ featured_order : ,
180+ summary_en : ,
181+ summary_vi : ,
182+ ) = category
178183 json . object ( [
179184 # ( "title" , json . string ( title ) ) ,
180185 # ( "slug" , json . string ( slug ) ) ,
@@ -188,19 +193,19 @@ fn dump_category_to_json(category: CategoryEditablePart) -> json.Json {
188193
189194pub fn create_category_via_api ( data : CategoryEditablePart ) {
190195 let body = dump_category_to_json ( data )
191- let decoder = decoders . make_category_decoder ( )
196+ let decoder = decoder . make_category_decoder ( )
192197 let handler = rsvp . expect_json ( decoder , ApiCreatedCategory )
193- rsvp . post ( constants . api_categories , body , handler )
198+ rsvp . post ( constant . api_categories , body , handler )
194199}
195200
196201pub fn update_category_via_api (
197202 id : String ,
198203 data : CategoryEditablePart ,
199204) -> Effect ( Msg ( a) ) {
200205 let body = dump_category_to_json ( data ) |> json . to_string
201- let decoder = decoders . make_category_decoder ( )
206+ let decoder = decoder . make_category_decoder ( )
202207 let handler = rsvp . expect_json ( decoder , ApiUpdatedCategory )
203- let url = constants . api_categories <> id
208+ let url = constant . api_categories <> id
204209 case
205210 rsvp . parse_relative_uri ( url )
206211 |> result . try ( request . from_uri )
@@ -220,10 +225,10 @@ pub fn update_category_via_api(
220225
221226pub fn delete_content_item_via_api ( id : ContentItemId ) -> Effect ( Msg ( a) ) {
222227 let url = case id {
223- PostId ( id ) -> constants . api_posts <> id
224- CategoryId ( id ) -> constants . api_categories <> id
225- PresentationId ( id ) -> constants . api_presentations <> id
226- BookId ( id ) -> constants . api_books <> id
228+ PostId ( id ) -> constant . api_posts <> id
229+ CategoryId ( id ) -> constant . api_categories <> id
230+ PresentationId ( id ) -> constant . api_presentations <> id
231+ BookId ( id ) -> constant . api_books <> id
227232 }
228233 let handler =
229234 rsvp . expect_ok_response ( fn ( r ) {
@@ -247,40 +252,41 @@ pub fn delete_content_item_via_api(id: ContentItemId) -> Effect(Msg(a)) {
247252
248253pub fn load_presentations ( page : Int ) -> Effect ( Msg ( a) ) {
249254 let response_decoder =
250- decoders . make_listing_api_decoder ( decoders . presentation_decoder ( ) )
251- let handler = rsvp . expect_json ( response_decoder , core . ApiReturnedPresentations )
255+ decoder . make_listing_api_decoder ( decoder . presentation_decoder ( ) )
256+ let handler =
257+ rsvp . expect_json ( response_decoder , core . ApiReturnedPresentations )
252258 let query_list = [ # ( "page" , int . to_string ( page ) ) ]
253259 let query = uri . query_to_string ( query_list ) |> Some
254- let url = uri . Uri ( .. uri . empty , path : constants . api_presentations , query : )
260+ let url = uri . Uri ( .. uri . empty , path : constant . api_presentations , query : )
255261 rsvp . get ( uri . to_string ( url ) , handler )
256262}
257263
258264pub fn load_single_presentation ( id : String ) -> Effect ( Msg ( a) ) {
259265 let handler =
260266 rsvp . expect_json (
261- decoders . presentation_decoder ( ) ,
267+ decoder . presentation_decoder ( ) ,
262268 core . ApiReturnedSinglePresentation ,
263269 )
264- rsvp . get ( constants . api_presentations <> id , handler )
270+ rsvp . get ( constant . api_presentations <> id , handler )
265271}
266272
267273pub fn create_presentation_via_api (
268274 data : core . PresentationEditablePart ,
269275) -> Effect ( Msg ( a) ) {
270276 let body = dump_presentation_to_json ( data )
271- let decoder = decoders . presentation_decoder ( )
277+ let decoder = decoder . presentation_decoder ( )
272278 let handler = rsvp . expect_json ( decoder , core . ApiCreatedPresentation )
273- rsvp . post ( constants . api_presentations , body , handler )
279+ rsvp . post ( constant . api_presentations , body , handler )
274280}
275281
276282pub fn update_presentation_via_api (
277283 id : String ,
278284 data : core . PresentationEditablePart ,
279285) -> Effect ( Msg ( a) ) {
280286 let body = dump_presentation_to_json ( data ) |> json . to_string
281- let decoder = decoders . presentation_decoder ( )
287+ let decoder = decoder . presentation_decoder ( )
282288 let handler = rsvp . expect_json ( decoder , core . ApiUpdatedPresentation )
283- let url = constants . api_presentations <> id
289+ let url = constant . api_presentations <> id
284290 case
285291 rsvp . parse_relative_uri ( url )
286292 |> result . try ( request . from_uri )
@@ -310,35 +316,35 @@ fn dump_presentation_to_json(
310316
311317pub fn load_books ( page : Int ) -> Effect ( Msg ( a) ) {
312318 let response_decoder =
313- decoders . make_listing_api_decoder ( decoders . book_decoder ( ) )
319+ decoder . make_listing_api_decoder ( decoder . book_decoder ( ) )
314320 let handler = rsvp . expect_json ( response_decoder , core . ApiReturnedBooks )
315321 let query_list = [ # ( "page" , int . to_string ( page ) ) ]
316322 let query = uri . query_to_string ( query_list ) |> Some
317- let url = uri . Uri ( .. uri . empty , path : constants . api_books , query : )
323+ let url = uri . Uri ( .. uri . empty , path : constant . api_books , query : )
318324 rsvp . get ( uri . to_string ( url ) , handler )
319325}
320326
321327pub fn load_single_book ( id : String ) -> Effect ( Msg ( a) ) {
322328 let handler =
323- rsvp . expect_json ( decoders . book_decoder ( ) , core . ApiReturnedSingleBook )
324- rsvp . get ( constants . api_books <> id , handler )
329+ rsvp . expect_json ( decoder . book_decoder ( ) , core . ApiReturnedSingleBook )
330+ rsvp . get ( constant . api_books <> id , handler )
325331}
326332
327333pub fn create_book_via_api ( data : core . BookEditablePart ) -> Effect ( Msg ( a) ) {
328334 let body = dump_book_to_json ( data )
329- let decoder = decoders . book_decoder ( )
335+ let decoder = decoder . book_decoder ( )
330336 let handler = rsvp . expect_json ( decoder , core . ApiCreatedBook )
331- rsvp . post ( constants . api_books , body , handler )
337+ rsvp . post ( constant . api_books , body , handler )
332338}
333339
334340pub fn update_book_via_api (
335341 id : String ,
336342 data : core . BookEditablePart ,
337343) -> Effect ( Msg ( a) ) {
338344 let body = dump_book_to_json ( data ) |> json . to_string
339- let decoder = decoders . book_decoder ( )
345+ let decoder = decoder . book_decoder ( )
340346 let handler = rsvp . expect_json ( decoder , core . ApiUpdatedBook )
341- let url = constants . api_books <> id
347+ let url = constant . api_books <> id
342348 case
343349 rsvp . parse_relative_uri ( url )
344350 |> result . try ( request . from_uri )
@@ -367,7 +373,7 @@ fn dump_book_to_json(book: core.BookEditablePart) -> json.Json {
367373pub fn load_book_authors ( ) -> Effect ( Msg ( a) ) {
368374 // The API returns a paginated response, but we only need the objects list
369375 let response_decoder =
370- decoders . make_listing_api_decoder ( decoders . book_author_decoder ( ) )
376+ decoder . make_listing_api_decoder ( decoder . book_author_decoder ( ) )
371377 let handler = rsvp . expect_json ( response_decoder , core . ApiReturnedBookAuthors )
372- rsvp . get ( constants . api_book_authors , handler )
378+ rsvp . get ( constant . api_book_authors , handler )
373379}
0 commit comments