PageSourceSearch

https://www.isg.fr/wp-content/plugins/wordpress-plugin-eventdb-v2-master/js/Eventdb.js?ver=7.0.6

js isg.fr collected 2026-10-02 07:34:27 UTC 5,302 bytes, 240 lines download raw bytes

1
2class EventDb {
3
4
5	constructor (username, password) {
6		this.username = username
7		this.password = password
8		this.id = ''
9	}
10
11	
12	auth () {
13		var data = JSON.stringify({
14			"email": this.username,
15			"password": this.password
16		})
17
18		var xhr = new XMLHttpRequest()
19		xhr.withCredentials = true
20
21		xhr.open("POST", "https://api.ionis.io/api/ionis/login", false)
22		xhr.setRequestHeader("Content-Type", "application/json")
23
24		xhr.send(data)
25
26		if (xhr.status === 200) {
27			let response = JSON.parse(xhr.responseText)
28			this.id = response.id
29
30		}
31	}
32
33	getCampus(schoolId) {
34		var xhr = new XMLHttpRequest()
35
36		let filter = {
37			where: {
38				schoolId: schoolId
39			},
40			include: ['city']
41		}
42
43		filter = encodeURIComponent(JSON.stringify(filter))
44
45		xhr.open("GET", "https://api.ionis.io/api/establishments?access_token=" + this.id + "&filter=" + filter, false)
46
47		xhr.setRequestHeader("Content-Type", "application/json")
48
49		xhr.send()
50
51		if (xhr.status === 200) {
52			let response = JSON.parse(xhr.responseText)
53			return response
54		}
55	}
56
57	getEstablishments(schoolId, campus) {
58		var xhr = new XMLHttpRequest()
59
60		let arrayFilter = []
61
62		if (campus.length > 0) {
63			for (let i = 0; i < campus.length; i++) {
64				arrayFilter.push(
65					{ and: [{ schoolId: schoolId }, { cityId: campus[i] }] }
66				)
67			}
68		} else {
69			arrayFilter.push(
70				{ and: [{ schoolId: schoolId }] }
71			)
72		}
73
74		let filter = {
75			where: {
76				or: arrayFilter
77			}
78		}
79
80		filter = encodeURIComponent(JSON.stringify(filter))
81
82		xhr.open("GET", "https://api.ionis.io/api/establishments?access_token=" + this.id + "&filter=" + filter, false)
83
84		xhr.setRequestHeader("Content-Type", "application/json")
85
86		xhr.send()
87
88		if (xhr.status === 200) {
89			let response = JSON.parse(xhr.responseText)
90			return response
91		}
92	}
93
94	getEvents(count = 2, schoolId = '', campus = [], types = [], labels = []) {
95 
96		let establishments = this.getEstablishments(schoolId, campus)
97		var xhr = new XMLHttpRequest()
98
99		let arrayFilter = []
100
101		for (let i = 0; i < establishments.length; i++) {
102			for (let j = 0; j < types.length; j++) {
103				let today = new Date()
104				let newDate = new Date()
105				let typeId = ''
106				if (typeof(types[j]) === 'object') {
107					typeId = types[j].id
108					newDate.setDate(today.getDate()+types[j].max)
109				} else {
110					typeId = types[j]
111					newDate.setDate(today.getDate()+365)
112				}
113				arrayFilter.push(
114					{ and: [{ establishmentId: establishments[i].id }, { typeId: typeId }, { start_date: { lt: newDate } }] }
115				)
116			}
117			for (let j = 0; j < labels.length; j++) {
118				arrayFilter.push(
119					{ and: [{ establishmentId: establishments[i].id }, { labelId: labels[j] }] }
120				)
121			}
122			if (types.length === 0 && labels.length === 0) {
123				arrayFilter.push(
124					{ and: [{ establishmentId: establishments[i].id }] }
125				)
126			}
127		}
128
129		var date = new Date();
130		date.setHours(0, 0, 0, 0);
131	
132		let filter = {
133			where: {
134				or: arrayFilter,
135				and: [
136					{
137						or: [
138						{ start_date: { gt: date } },
139							{
140								and: [
141									{ end_date: { gt: date } },
142									{ end_date: { neq: null }}
143								]
144							}
145						]
146					}
147				],
148				active: true
149			},
150			include: [{ establishment: ['city', 'school']}, 'image', 'label', 'link', 'type'],
151			order: 'start_date ASC',
152			limit: count
153		}
154		
155		// console.log(filter);
156
157		filter = encodeURIComponent(JSON.stringify(filter))
158
159		xhr.open("GET", "https://api.ionis.io/api/events?access_token=" + this.id + '&filter=' + filter, false)
160		xhr.setRequestHeader("Content-Type", "application/json")
161
162		xhr.send()
163
164		if (xhr.status === 200) {
165			let response = JSON.parse(xhr.responseText)
166			if (types.length > 0 && typeof(types[0]) === 'object') {
167				let finalResponse = []
168				for (let i = 0; i < types.length; i++) {
169					let typeId = types[i].id
170					let limit = types[i].limit
171					let typeLimit = types[i].typeLimit
172					// console.log('==========', limit)
173					if (limit !== undefined) {
174						if (typeLimit === 'campus') {
175							for (let j = 0; j < establishments.length; j++) {
176								let filterArray = response.filter(
177									(event) => {
178										return event.typeId == typeId && event.establishmentId == establishments[j].id
179									}
180								)
181		
182								filterArray.splice(limit, filterArray.length - 1)
183		
184								finalResponse = finalResponse.concat(filterArray)
185							}
186						} else {
187							let filterArray = response.filter(
188								(event) => {
189									return event.typeId == typeId
190								}
191							)
192	
193							filterArray.splice(limit, filterArray.length - 1)
194	
195							finalResponse = finalResponse.concat(filterArray)
196						}
197					}
198				}
199
200				finalResponse = finalResponse.sort(this.compare)
201
202				return finalResponse
203			} else {
204				return response
205			}
206		}
207	}
208
209	getLabels(schoolId) {
210		var xhr = new XMLHttpRequest()
211
212		let filter = {
213			where: {
214				schoolId: schoolId
215			},
216			order: 'name ASC'
217		}
218
219		filter = encodeURIComponent(JSON.stringify(filter))
220
221		xhr.open("GET", "https://api.ionis.io/api/labels?access_token=" + this.id + "&filter=" + filter, false)
222
223		xhr.setRequestHeader("Content-Type", "application/json")
224
225		xhr.send()
226
227		if (xhr.status === 200) {
228			let response = JSON.parse(xhr.responseText)
229			return response
230		}
231	}
232
233	compare(a, b) {
234		if (a.start_date > b.start_date) {
235			return 1
236		} else {
237			return -1
238		}
239	}
240}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.