@@ -3,6 +3,9 @@ import { ref, type Ref } from 'vue'
3
3
import { useFetch } from ' @vueuse/core'
4
4
import { useUIStore } from ' @/stores/ui'
5
5
import type { PlatformOptions } from ' @/types'
6
+ import { useRouter } from ' vue-router'
7
+
8
+ const router = useRouter ()
6
9
7
10
const uploadFile = ref ()
8
11
const pgnUsername: Ref <string > = ref (' ' )
@@ -24,51 +27,56 @@ async function uploadPGNFile() {
24
27
formData .append (' pgn_file' , uploadFile .value .files [0 ])
25
28
formData .append (' usernames' , pgnUsername .value )
26
29
formData .append (' include_roast' , includeRoast .value )
27
- const { data, pending, error, refresh } = await useFetch (' /server/pgn/upload' , {
28
- method: ' POST' ,
29
- body: formData ,
30
- }).json ()
31
- if (error .value ) {
32
- toastClass .value = ui .showMessage (' error' , ' Error' , error .value )
33
- } else {
34
- await navigator .clipboard .writeText (data .value .status_id )
35
- toastClass .value = ui .showMessage (
36
- ' success' ,
37
- ' Upload successful' ,
38
- ` Tracking ID copied to clipboard! ` ,
39
- )
30
+ try {
31
+ const response = await fetch (' /server/pgn/upload' , {
32
+ method: ' POST' ,
33
+ body: formData ,
34
+ })
35
+ const data = await response .json ()
36
+ if (! response .ok ) {
37
+ ui .showMessage (' error' , ' Error' , data .message )
38
+ } else {
39
+ await navigator .clipboard .writeText (data .status_id )
40
+ toastClass .value = ui .showMessage (
41
+ ' success' ,
42
+ ' Upload successful' ,
43
+ ` Tracking ID copied to clipboard! ` ,
44
+ )
45
+ }
46
+ } catch (error ) {
47
+ ui .showMessage (' error' , ' Error' , error )
40
48
}
41
49
}
42
50
43
51
async function uploadPlatformUsernames() {
44
- const { data, pending, error, refresh } = await useFetch (' /server/pgn/external_user/' )
45
- .post ({
46
- username: platformUsername .value ,
47
- platform: externalPlatform .value .code ,
48
- include_roast: includeRoast .value ,
52
+ try {
53
+ const response = await fetch (' /server/pgn/external_user/' , {
54
+ method: ' POST' ,
55
+ headers: { ' Content-Type' : ' application/json' },
56
+ body: JSON .stringify ({
57
+ username: platformUsername .value ,
58
+ platform: externalPlatform .value .code ,
59
+ include_roast: includeRoast .value ,
60
+ }),
49
61
})
50
- .json ()
51
- if (error .value ) {
52
- toastClass .value = ui .showMessage (' error' , ' Error' , error .value )
53
- } else {
54
- await navigator .clipboard .writeText (data .value .status_id )
55
- toastClass .value = ui .showMessage (
56
- ' success' ,
57
- ' Upload successful' ,
58
- ` Tracking ID copied to clipboard! ` ,
59
- )
62
+ const data = await response .json ()
63
+ if (! response .ok ) {
64
+ ui .showMessage (' error' , ' Error' , data .message )
65
+ } else {
66
+ await navigator .clipboard .writeText (data .status_id )
67
+ toastClass .value = ui .showMessage (
68
+ ' success' ,
69
+ ' Upload successful' ,
70
+ ` Tracking ID copied to clipboard! ` ,
71
+ )
72
+ }
73
+ } catch (error ) {
74
+ ui .showMessage (' error' , ' Error' , error )
60
75
}
61
76
}
62
77
63
78
async function checkStatusByTransactionID() {
64
- const { data, pending, error, refresh } = await useFetch (
65
- ` /server/analysis/status/${trackingID .value } ` ,
66
- ).json ()
67
- if (error .value ) {
68
- toastClass .value = ui .showMessage (' error' , ' Error' , error .value )
69
- } else {
70
- toastClass .value = ui .showMessage (' success' , ' Upload successful' , ` Tracking ID: ${data .value } ` )
71
- }
79
+ router .push (` /status/${trackingID .value } ` )
72
80
}
73
81
</script >
74
82
0 commit comments