diff options
Diffstat (limited to 'server/models/pod-interface.ts')
-rw-r--r-- | server/models/pod-interface.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/server/models/pod-interface.ts b/server/models/pod-interface.ts new file mode 100644 index 000000000..14c88bec6 --- /dev/null +++ b/server/models/pod-interface.ts | |||
@@ -0,0 +1,46 @@ | |||
1 | import * as Sequelize from 'sequelize' | ||
2 | |||
3 | export namespace PodMethods { | ||
4 | export type ToFormatedJSON = () => void | ||
5 | |||
6 | export type CountAll = (callback) => void | ||
7 | export type IncrementScores = (ids, value, callback) => void | ||
8 | export type List = (callback) => void | ||
9 | export type ListAllIds = (transaction, callback) => void | ||
10 | export type ListRandomPodIdsWithRequest = (limit, tableWithPods, tableWithPodsJoins, callback) => void | ||
11 | export type ListBadPods = (callback) => void | ||
12 | export type Load = (id, callback) => void | ||
13 | export type LoadByHost = (host, callback) => void | ||
14 | export type RemoveAll = (callback) => void | ||
15 | export type UpdatePodsScore = (goodPods, badPods) => void | ||
16 | } | ||
17 | |||
18 | export interface PodClass { | ||
19 | countAll: PodMethods.CountAll | ||
20 | incrementScores: PodMethods.IncrementScores | ||
21 | list: PodMethods.List | ||
22 | listAllIds: PodMethods.ListAllIds | ||
23 | listRandomPodIdsWithRequest: PodMethods.ListRandomPodIdsWithRequest | ||
24 | listBadPods: PodMethods.ListBadPods | ||
25 | load: PodMethods.Load | ||
26 | loadByHost: PodMethods.LoadByHost | ||
27 | removeAll: PodMethods.RemoveAll | ||
28 | updatePodsScore: PodMethods.UpdatePodsScore | ||
29 | } | ||
30 | |||
31 | export interface PodAttributes { | ||
32 | host?: string | ||
33 | publicKey?: string | ||
34 | score?: number | Sequelize.literal // Sequelize literal for 'score +' + value | ||
35 | email?: string | ||
36 | } | ||
37 | |||
38 | export interface PodInstance extends PodClass, PodAttributes, Sequelize.Instance<PodAttributes> { | ||
39 | id: number | ||
40 | createdAt: Date | ||
41 | updatedAt: Date | ||
42 | |||
43 | toFormatedJSON: PodMethods.ToFormatedJSON, | ||
44 | } | ||
45 | |||
46 | export interface PodModel extends PodClass, Sequelize.Model<PodInstance, PodAttributes> {} | ||