@glissandoo/lib 1.104.11 → 1.104.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -164,6 +164,7 @@ export declare enum FbFunctionName {
164
164
  UserRegister = "user-register",
165
165
  UserRemove = "user-remove",
166
166
  UserSendYearWrapped = "user-sendYearWrapped",
167
+ UserRecoveryPassword = "user-recoveryPassword",
167
168
  UserGroupOnDelete = "userGroup-onDelete",
168
169
  WebhookEventOnCreate = "webhookEvent-onCreate",
169
170
  WebhookGocardless = "webhook-gocardless",
@@ -168,6 +168,7 @@ var FbFunctionName;
168
168
  FbFunctionName["UserRegister"] = "user-register";
169
169
  FbFunctionName["UserRemove"] = "user-remove";
170
170
  FbFunctionName["UserSendYearWrapped"] = "user-sendYearWrapped";
171
+ FbFunctionName["UserRecoveryPassword"] = "user-recoveryPassword";
171
172
  FbFunctionName["UserGroupOnDelete"] = "userGroup-onDelete";
172
173
  FbFunctionName["WebhookEventOnCreate"] = "webhookEvent-onCreate";
173
174
  FbFunctionName["WebhookGocardless"] = "webhook-gocardless";
@@ -172,6 +172,7 @@ const regionByFunctions = {
172
172
  [index_1.FbFunctionName.UserOnUpdate]: GCloudRegions.UsCentral1,
173
173
  [index_1.FbFunctionName.UserRegister]: GCloudRegions.UsCentral1,
174
174
  [index_1.FbFunctionName.UserRemove]: GCloudRegions.EuropeWest6,
175
+ [index_1.FbFunctionName.UserRecoveryPassword]: GCloudRegions.EuropeWest6,
175
176
  [index_1.FbFunctionName.UserGroupOnDelete]: GCloudRegions.EuropeWest6,
176
177
  [index_1.FbFunctionName.UserSendYearWrapped]: GCloudRegions.EuropeWest6,
177
178
  [index_1.FbFunctionName.NotificationRemoveAllByGroup]: GCloudRegions.EuropeWest6,
@@ -19,4 +19,8 @@ export declare namespace UserFbFunctionsTypes {
19
19
  instrument?: string;
20
20
  }
21
21
  type JoinEventResult = void;
22
+ interface RecoveryPasswordParams {
23
+ email: string;
24
+ }
25
+ type RecoveryPasswordResult = void;
22
26
  }
@@ -7,6 +7,7 @@ export declare enum CollectionNames {
7
7
  User = "user",
8
8
  UserGroups = "groups",
9
9
  UserNotifications = "notifications",
10
+ UserOfferAlarms = "offerAlarms",
10
11
  Counters = "database",
11
12
  Records = "records",
12
13
  Event = "event",
@@ -11,6 +11,7 @@ var CollectionNames;
11
11
  CollectionNames["User"] = "user";
12
12
  CollectionNames["UserGroups"] = "groups";
13
13
  CollectionNames["UserNotifications"] = "notifications";
14
+ CollectionNames["UserOfferAlarms"] = "offerAlarms";
14
15
  CollectionNames["Counters"] = "database";
15
16
  CollectionNames["Records"] = "records";
16
17
  CollectionNames["Event"] = "event";
package/lang/ca.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Quin transport utilitzaràs?",
56
56
  "group.questions.default.declined.answer1": "🤒 Malalt",
57
57
  "group.questions.default.declined.answer2": "🏖️ Vacances",
58
+ "group.questions.default.declined.answer3": "💼 Feina",
59
+ "group.questions.default.declined.answer4": "📝 Exàmens",
58
60
  "group.questions.default.declined.title": "Motiu per no assistir",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Arribaré tard",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Marxaré abans",
package/lang/de.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Welches Transportmittel wirst du nutzen?",
56
56
  "group.questions.default.declined.answer1": "🤒 Krank",
57
57
  "group.questions.default.declined.answer2": "🏖️ Urlaub",
58
+ "group.questions.default.declined.answer3": "💼 Arbeit",
59
+ "group.questions.default.declined.answer4": "📝 Prüfungen",
58
60
  "group.questions.default.declined.title": "Gründe für Abwesenheit",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Ich komme zu spät",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Ich gehe früher",
package/lang/en.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "What transport will you use?",
56
56
  "group.questions.default.declined.answer1": "🤒 Sick",
57
57
  "group.questions.default.declined.answer2": "🏖️ On vacation",
58
+ "group.questions.default.declined.answer3": "💼 Work",
59
+ "group.questions.default.declined.answer4": "📝 Exams",
58
60
  "group.questions.default.declined.title": "Reasons for not attending",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 I will arrive late",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ I will leave early",
package/lang/es.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "¿Qué transporte utilizarás?",
56
56
  "group.questions.default.declined.answer1": "🤒 Enfermo",
57
57
  "group.questions.default.declined.answer2": "🏖️ Vacaciones",
58
+ "group.questions.default.declined.answer3": "💼 Trabajo",
59
+ "group.questions.default.declined.answer4": "📝 Exámenes",
58
60
  "group.questions.default.declined.title": "Motivos para no asistir",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Llegaré tarde",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Me marcharé antes",
package/lang/eu.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Zein garraiobide erabiliko duzu?",
56
56
  "group.questions.default.declined.answer1": "🤒 Gaixo",
57
57
  "group.questions.default.declined.answer2": "🏖️ Oporretan",
58
+ "group.questions.default.declined.answer3": "💼 Lana",
59
+ "group.questions.default.declined.answer4": "📝 Azterketak",
58
60
  "group.questions.default.declined.title": "Ez joatearen arrazoiak",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Berandu iritsiko naiz",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Lehenago alde egingo dut",
package/lang/fr.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Quel moyen de transport vas-tu utiliser ?",
56
56
  "group.questions.default.declined.answer1": "🤒 Malade",
57
57
  "group.questions.default.declined.answer2": "🏖️ En vacances",
58
+ "group.questions.default.declined.answer3": "💼 Travail",
59
+ "group.questions.default.declined.answer4": "📝 Examens",
58
60
  "group.questions.default.declined.title": "Raisons d'absence",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 J’arriverai en retard",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Je partirai plus tôt",
package/lang/gl.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Que transporte vas usar?",
56
56
  "group.questions.default.declined.answer1": "🤒 Enfermo",
57
57
  "group.questions.default.declined.answer2": "🏖️ Vacacións",
58
+ "group.questions.default.declined.answer3": "💼 Traballo",
59
+ "group.questions.default.declined.answer4": "📝 Exames",
58
60
  "group.questions.default.declined.title": "Motivos para non asistir",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Chegarei tarde",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Marcharei antes",
package/lang/it.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Quale mezzo di trasporto userai?",
56
56
  "group.questions.default.declined.answer1": "🤒 Malato",
57
57
  "group.questions.default.declined.answer2": "🏖️ In vacanza",
58
+ "group.questions.default.declined.answer3": "💼 Lavoro",
59
+ "group.questions.default.declined.answer4": "📝 Esami",
58
60
  "group.questions.default.declined.title": "Motivi per non partecipare",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Arriverò in ritardo",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Andrò via prima",
package/lang/nl.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Welk vervoermiddel gebruik je?",
56
56
  "group.questions.default.declined.answer1": "🤒 Ziek",
57
57
  "group.questions.default.declined.answer2": "🏖️ Op vakantie",
58
+ "group.questions.default.declined.answer3": "💼 Werk",
59
+ "group.questions.default.declined.answer4": "📝 Examens",
58
60
  "group.questions.default.declined.title": "Redenen om niet aanwezig te zijn",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Ik kom te laat",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Ik vertrek eerder",
package/lang/pt.json CHANGED
@@ -55,6 +55,8 @@
55
55
  "group.questions.default.confirmed.title": "Que meio de transporte vais usar?",
56
56
  "group.questions.default.declined.answer1": "🤒 Doente",
57
57
  "group.questions.default.declined.answer2": "🏖️ De férias",
58
+ "group.questions.default.declined.answer3": "💼 Trabalho",
59
+ "group.questions.default.declined.answer4": "📝 Exames",
58
60
  "group.questions.default.declined.title": "Motivos para não comparecer",
59
61
  "group.questions.default2.confirmed.answer1": "🏃 Vou chegar atrasado",
60
62
  "group.questions.default2.confirmed.answer2": "⏱️ Vou sair mais cedo",
@@ -73,7 +73,9 @@ class Offer extends lang_2.default {
73
73
  return this.data.timezone || 'Europe/Madrid';
74
74
  }
75
75
  get isResponseAllowed() {
76
- return (!this.isSelectionClosed && (this.deadlineAt ? (0, date_fns_1.isFuture)(this.deadlineAt.toDate()) : true));
76
+ return (this.isActive &&
77
+ !this.isSelectionClosed &&
78
+ (this.deadlineAt ? (0, date_fns_1.isFuture)(this.deadlineAt.toDate()) : true));
77
79
  }
78
80
  get selectionClosedAt() {
79
81
  return this.data.selectionClosedAt || null;
@@ -0,0 +1,15 @@
1
+ import { LanguagesTypes } from '../../../lang';
2
+ import Model, { DocumentModel } from '../../Model';
3
+ import { UserOfferAlarmData } from './types';
4
+ export default class UserOfferAlarm extends Model<UserOfferAlarmData> {
5
+ private lang;
6
+ constructor(doc: DocumentModel, lang?: LanguagesTypes);
7
+ get userId(): string;
8
+ get locality(): string | null;
9
+ get location(): FirebaseFirestore.GeoPoint;
10
+ get country(): string | null;
11
+ get instrument(): import("../../../helpers/instruments").DefaultInstrumentId | null;
12
+ get musicStyle(): string | null;
13
+ get distance(): number | null;
14
+ get createdAt(): FirebaseFirestore.Timestamp;
15
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("../../../helpers/utils");
7
+ const lang_1 = require("../../../lang");
8
+ const Model_1 = __importDefault(require("../../Model"));
9
+ class UserOfferAlarm extends Model_1.default {
10
+ constructor(doc, lang = lang_1.defaultLocale) {
11
+ super(doc);
12
+ this.lang = lang;
13
+ }
14
+ get userId() {
15
+ return (0, utils_1.at)(this.ref.path.split('/'), 1) || '';
16
+ }
17
+ get locality() {
18
+ return this.data.locality || null;
19
+ }
20
+ get location() {
21
+ return this.data.location || null;
22
+ }
23
+ get country() {
24
+ return this.data.country || null;
25
+ }
26
+ get instrument() {
27
+ return this.data.instrument || null;
28
+ }
29
+ get musicStyle() {
30
+ return this.data.musicStyle || null;
31
+ }
32
+ get distance() {
33
+ return this.data.distance || null;
34
+ }
35
+ get createdAt() {
36
+ return this.data.createdAt;
37
+ }
38
+ }
39
+ exports.default = UserOfferAlarm;
@@ -0,0 +1,11 @@
1
+ import { GeoPoint, Timestamp } from '@google-cloud/firestore';
2
+ import { DefaultInstrumentId } from '../../../helpers/instruments';
3
+ export interface UserOfferAlarmData {
4
+ locality: string;
5
+ location: GeoPoint;
6
+ country: string;
7
+ distance: number;
8
+ instrument: DefaultInstrumentId | null;
9
+ musicStyle: string | null;
10
+ readonly createdAt: Timestamp;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -35,6 +35,15 @@ export default class User extends UserExtended<UserData> {
35
35
  default_events_filter: UserEventsFilter;
36
36
  repertoire_order_by: RepertoireFilterBy;
37
37
  repertoire_order_direction: RepertoireFilterDirection;
38
+ offers_filter_locality: string | null;
39
+ offers_filter_location: {
40
+ latitude: number;
41
+ longitude: number;
42
+ } | null;
43
+ offers_filter_country: string | null;
44
+ offers_filter_distance: number;
45
+ offers_filter_instrument: import("../../helpers/instruments").InstrumentId | null;
46
+ offers_filter_music_style: import("../../helpers/musicStyles").MusicStyleId | null;
38
47
  };
39
48
  get dashboardConfig(): {
40
49
  default_group_id: string | null;
@@ -55,6 +64,15 @@ export default class User extends UserExtended<UserData> {
55
64
  default_events_filter: UserEventsFilter;
56
65
  repertoire_order_by: RepertoireFilterBy;
57
66
  repertoire_order_direction: RepertoireFilterDirection;
67
+ offers_filter_locality: string | null;
68
+ offers_filter_location: {
69
+ latitude: number;
70
+ longitude: number;
71
+ } | null;
72
+ offers_filter_country: string | null;
73
+ offers_filter_distance: number;
74
+ offers_filter_instrument: import("../../helpers/instruments").InstrumentId | null;
75
+ offers_filter_music_style: import("../../helpers/musicStyles").MusicStyleId | null;
58
76
  }[T];
59
77
  getNotificationSetting(key: UserNotificationSettings): boolean;
60
78
  getNotificationByGroup(groupId: string): number;
@@ -90,52 +90,47 @@ class User extends extended_1.default {
90
90
  return !this.exists || !(0, lodash_1.isNull)(this.deletedAt);
91
91
  }
92
92
  get appConfig() {
93
- const { appConfig = {
93
+ const defaultConfig = {
94
94
  [types_2.UserAppConfig.DefaultGroupId]: null,
95
95
  [types_2.UserAppConfig.DefaultEventsFilter]: types_2.UserEventsFilter.Trimonth,
96
96
  [types_2.UserAppConfig.RepertoireOrderBy]: types_1.RepertoireFilterBy.CreatedAt,
97
97
  [types_2.UserAppConfig.RepertoireOrderDirection]: types_1.RepertoireFilterDirection.Desc,
98
- }, } = this.data;
99
- return {
100
- [types_2.UserAppConfig.DefaultGroupId]: types_2.UserAppConfig.DefaultGroupId in appConfig
101
- ? appConfig[types_2.UserAppConfig.DefaultGroupId]
102
- : null,
103
- [types_2.UserAppConfig.DefaultEventsFilter]: types_2.UserAppConfig.DefaultEventsFilter in appConfig
104
- ? appConfig[types_2.UserAppConfig.DefaultEventsFilter]
105
- : types_2.UserEventsFilter.Trimonth,
106
- [types_2.UserAppConfig.RepertoireOrderBy]: types_2.UserAppConfig.RepertoireOrderBy in appConfig
107
- ? appConfig[types_2.UserAppConfig.RepertoireOrderBy]
108
- : types_1.RepertoireFilterBy.CreatedAt,
109
- [types_2.UserAppConfig.RepertoireOrderDirection]: types_2.UserAppConfig.RepertoireOrderDirection in appConfig
110
- ? appConfig[types_2.UserAppConfig.RepertoireOrderDirection]
111
- : types_1.RepertoireFilterDirection.Desc,
98
+ [types_2.UserAppConfig.OffersFilterLocality]: null,
99
+ [types_2.UserAppConfig.OffersFilterLocation]: null,
100
+ [types_2.UserAppConfig.OffersFilterDistance]: 1000,
101
+ [types_2.UserAppConfig.OffersFilterInstrument]: null,
102
+ [types_2.UserAppConfig.OffersFilterMusicStyle]: null,
103
+ [types_2.UserAppConfig.OffersFilterCountry]: null,
112
104
  };
105
+ const { appConfig = defaultConfig } = this.data;
106
+ const values = Object.values(types_2.UserAppConfig).reduce((acc, key) => {
107
+ if (key in acc)
108
+ return acc;
109
+ return {
110
+ ...acc,
111
+ [key]: defaultConfig[key],
112
+ };
113
+ }, appConfig);
114
+ return values;
113
115
  }
114
116
  get dashboardConfig() {
115
- const { dashboardConfig = {
117
+ const defaultConfig = {
116
118
  [types_2.UserDashboardConfig.DefaultGroupId]: null,
117
119
  [types_2.UserDashboardConfig.DefaultPartnershipId]: null,
118
120
  [types_2.UserDashboardConfig.RepertoireOrderBy]: types_1.RepertoireFilterBy.CreatedAt,
119
121
  [types_2.UserDashboardConfig.RepertoireOrderDirection]: types_1.RepertoireFilterDirection.Desc,
120
122
  [types_2.UserDashboardConfig.EventsType]: null,
121
- }, } = this.data;
122
- return {
123
- [types_2.UserDashboardConfig.DefaultGroupId]: types_2.UserDashboardConfig.DefaultGroupId in dashboardConfig
124
- ? dashboardConfig[types_2.UserDashboardConfig.DefaultGroupId]
125
- : null,
126
- [types_2.UserDashboardConfig.DefaultPartnershipId]: types_2.UserDashboardConfig.DefaultPartnershipId in dashboardConfig
127
- ? dashboardConfig[types_2.UserDashboardConfig.DefaultPartnershipId]
128
- : null,
129
- [types_2.UserDashboardConfig.RepertoireOrderBy]: types_2.UserDashboardConfig.RepertoireOrderBy in dashboardConfig
130
- ? dashboardConfig[types_2.UserDashboardConfig.RepertoireOrderBy]
131
- : types_1.RepertoireFilterBy.CreatedAt,
132
- [types_2.UserDashboardConfig.RepertoireOrderDirection]: types_2.UserDashboardConfig.RepertoireOrderDirection in dashboardConfig
133
- ? dashboardConfig[types_2.UserDashboardConfig.RepertoireOrderDirection]
134
- : types_1.RepertoireFilterDirection.Desc,
135
- [types_2.UserDashboardConfig.EventsType]: types_2.UserDashboardConfig.EventsType in dashboardConfig
136
- ? dashboardConfig[types_2.UserDashboardConfig.EventsType]
137
- : null,
138
123
  };
124
+ const { dashboardConfig = defaultConfig } = this.data;
125
+ const values = Object.values(types_2.UserDashboardConfig).reduce((acc, key) => {
126
+ if (key in acc)
127
+ return acc;
128
+ return {
129
+ ...acc,
130
+ [key]: defaultConfig[key],
131
+ };
132
+ }, dashboardConfig);
133
+ return values;
139
134
  }
140
135
  getDashboardConfig(value) {
141
136
  return this.dashboardConfig[value];
@@ -1,4 +1,6 @@
1
1
  import { GeoPoint, Timestamp } from '@google-cloud/firestore';
2
+ import { InstrumentId } from '../../helpers/instruments';
3
+ import { MusicStyleId } from '../../helpers/musicStyles';
2
4
  import { LanguagesTypes } from '../../lang';
3
5
  import { EventType } from '../Evento/types';
4
6
  import { RepertoireFilterBy, RepertoireFilterDirection } from '../Repertory/types';
@@ -14,7 +16,13 @@ export declare enum UserAppConfig {
14
16
  DefaultGroupId = "default_group_id",
15
17
  DefaultEventsFilter = "default_events_filter",
16
18
  RepertoireOrderBy = "repertoire_order_by",
17
- RepertoireOrderDirection = "repertoire_order_direction"
19
+ RepertoireOrderDirection = "repertoire_order_direction",
20
+ OffersFilterLocality = "offers_filter_locality",
21
+ OffersFilterLocation = "offers_filter_location",
22
+ OffersFilterDistance = "offers_filter_distance",
23
+ OffersFilterCountry = "offers_filter_country",
24
+ OffersFilterInstrument = "offers_filter_instrument",
25
+ OffersFilterMusicStyle = "offers_filter_music_style"
18
26
  }
19
27
  export declare enum UserDashboardConfig {
20
28
  DefaultGroupId = "default_group_id",
@@ -97,6 +105,15 @@ export interface UserData extends UserExtendedData {
97
105
  [UserAppConfig.DefaultEventsFilter]: UserEventsFilter;
98
106
  [UserAppConfig.RepertoireOrderBy]: RepertoireFilterBy;
99
107
  [UserAppConfig.RepertoireOrderDirection]: RepertoireFilterDirection;
108
+ [UserAppConfig.OffersFilterLocality]: string | null;
109
+ [UserAppConfig.OffersFilterLocation]: {
110
+ latitude: number;
111
+ longitude: number;
112
+ } | null;
113
+ [UserAppConfig.OffersFilterCountry]: string | null;
114
+ [UserAppConfig.OffersFilterDistance]: number;
115
+ [UserAppConfig.OffersFilterInstrument]: InstrumentId | null;
116
+ [UserAppConfig.OffersFilterMusicStyle]: MusicStyleId | null;
100
117
  };
101
118
  analyticsEnabled: boolean;
102
119
  registerVia: UserRegisterVia;
@@ -17,6 +17,12 @@ var UserAppConfig;
17
17
  UserAppConfig["DefaultEventsFilter"] = "default_events_filter";
18
18
  UserAppConfig["RepertoireOrderBy"] = "repertoire_order_by";
19
19
  UserAppConfig["RepertoireOrderDirection"] = "repertoire_order_direction";
20
+ UserAppConfig["OffersFilterLocality"] = "offers_filter_locality";
21
+ UserAppConfig["OffersFilterLocation"] = "offers_filter_location";
22
+ UserAppConfig["OffersFilterDistance"] = "offers_filter_distance";
23
+ UserAppConfig["OffersFilterCountry"] = "offers_filter_country";
24
+ UserAppConfig["OffersFilterInstrument"] = "offers_filter_instrument";
25
+ UserAppConfig["OffersFilterMusicStyle"] = "offers_filter_music_style";
20
26
  })(UserAppConfig = exports.UserAppConfig || (exports.UserAppConfig = {}));
21
27
  var UserDashboardConfig;
22
28
  (function (UserDashboardConfig) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glissandoo/lib",
3
- "version": "1.104.11",
3
+ "version": "1.104.13",
4
4
  "description": "Glissandoo library js",
5
5
  "main": "./index.js",
6
6
  "types": "./index.d.ts",