0

Fetch Moti Progresses

by
Published Nov 5, 2024

Fetches Moti Progresses, i.e. data about how far Users have progressed in completing Motis.

Script motimate Verified

The script

Submitted by hugo697 Bun
Verified 581 days ago
1
//native
2
type Motimate = {
3
	token: string
4
}
5

6
export async function main(
7
	auth: Motimate,
8
	filter_moti_id_: string | undefined,
9
	filter_user_id_: string | undefined,
10
	filter_package_id_: string | undefined,
11
	filter_learning_path_id_: string | undefined,
12
	filter_playlist_id_: string | undefined,
13
	filter_progress_lteq_: string | undefined,
14
	filter_user_external_id_: string | undefined,
15
	filter_moti_external_id_: string | undefined,
16
	filter_package_external_id_: string | undefined,
17
	filter_learning_path_external_id_: string | undefined,
18
	include: string | undefined
19
) {
20
	const url = new URL(`https://motimateapp.com/public_api/motis/progresses`)
21

22
	for (const [k, v] of [
23
		['filter[moti_id]', filter_moti_id_],
24
		['filter[user_id]', filter_user_id_],
25
		['filter[package_id]', filter_package_id_],
26
		['filter[learning_path_id]', filter_learning_path_id_],
27
		['filter[playlist_id]', filter_playlist_id_],
28
		['filter[progress_lteq]', filter_progress_lteq_],
29
		['filter[user_external_id]', filter_user_external_id_],
30
		['filter[moti_external_id]', filter_moti_external_id_],
31
		['filter[package_external_id]', filter_package_external_id_],
32
		['filter[learning_path_external_id]', filter_learning_path_external_id_],
33
		['include', include]
34
	]) {
35
		if (v !== undefined && v !== '' && k !== undefined) {
36
			url.searchParams.append(k, v)
37
		}
38
	}
39

40
	const response = await fetch(url, {
41
		method: 'GET',
42
		headers: {
43
			Authorization: 'Bearer ' + auth.token
44
		}
45
	})
46

47
	if (!response.ok) {
48
		const text = await response.text()
49
		throw new Error(`${response.status} ${text}`)
50
	}
51

52
	return await response.json()
53
}
54