@shisyamo4131/air-guard-v2-schemas 2.4.2-dev.75 → 2.4.2-dev.77
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.
- package/index.js +1 -0
- package/package.json +1 -1
- package/src/FcmToken.js +73 -0
- package/src/parts/fieldDefinitions/oneLine.js +12 -0
package/index.js
CHANGED
|
@@ -14,6 +14,7 @@ export { default as Customer, CustomerMinimal } from "./src/Customer.js";
|
|
|
14
14
|
export { default as CutoffDate } from "./src/utils/CutoffDate.js";
|
|
15
15
|
export { default as Employee } from "./src/Employee.js";
|
|
16
16
|
export { VALIDATION_ERRORS } from "./src/errorDefinitions.js";
|
|
17
|
+
export { default as FcmToken } from "./src/FcmToken.js";
|
|
17
18
|
export { GeocodableMixin } from "./src/mixins/GeocodableMixin.js";
|
|
18
19
|
export { default as Insurance } from "./src/Insurance.js";
|
|
19
20
|
export { default as Notification } from "./src/Notification.js";
|
package/package.json
CHANGED
package/src/FcmToken.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*****************************************************************************
|
|
2
|
+
* @file src/FcmToken.js
|
|
3
|
+
*****************************************************************************/
|
|
4
|
+
import FireModel from "@shisyamo4131/air-firebase-v2";
|
|
5
|
+
import { defField } from "./parts/fieldDefinitions.js";
|
|
6
|
+
|
|
7
|
+
/*****************************************************************************
|
|
8
|
+
* @class FcmToken
|
|
9
|
+
* @extends FireModel
|
|
10
|
+
*
|
|
11
|
+
* Firebase Cloud Messaging (FCM) のトークンをグローバル管理するためのコレクション
|
|
12
|
+
*
|
|
13
|
+
* - usePrefix: false でグローバルコレクション(Companies のサブコレクションではない)
|
|
14
|
+
* - ドキュメントID: FCMトークンそのもの
|
|
15
|
+
* - 同じトークンは同じデバイスを指すため、最後にログインしたユーザーの情報で上書きされる
|
|
16
|
+
*
|
|
17
|
+
* @property {string} token - FCMトークン(ドキュメントIDと同じ)
|
|
18
|
+
* @property {string} uid - ユーザーID(Firebase Authentication UID)
|
|
19
|
+
* @property {string} employeeId - 従業員ID
|
|
20
|
+
* @property {string} companyId - 会社ID
|
|
21
|
+
* @property {Date} updatedAt - 最終更新日時
|
|
22
|
+
*****************************************************************************/
|
|
23
|
+
export default class FcmToken extends FireModel {
|
|
24
|
+
static className = "FCMトークン";
|
|
25
|
+
static collectionPath = "FcmTokens";
|
|
26
|
+
static usePrefix = false; // グローバルコレクション
|
|
27
|
+
|
|
28
|
+
static classProps = {
|
|
29
|
+
token: defField("token", {
|
|
30
|
+
required: true,
|
|
31
|
+
hidden: true,
|
|
32
|
+
}),
|
|
33
|
+
uid: defField("uid", {
|
|
34
|
+
required: true,
|
|
35
|
+
hidden: true,
|
|
36
|
+
}),
|
|
37
|
+
companyId: defField("companyId", {
|
|
38
|
+
required: true,
|
|
39
|
+
hidden: true,
|
|
40
|
+
}),
|
|
41
|
+
updatedAt: defField("dateTimeAt", {
|
|
42
|
+
label: "更新日時",
|
|
43
|
+
default: () => new Date(),
|
|
44
|
+
hidden: true,
|
|
45
|
+
}),
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* fcmToken ドキュメントはドキュメントIDにトークンそのものが使われることを前提としているため、
|
|
50
|
+
* create メソッドをオーバーライドして、updateOptions に docId が含まれていることを確認する。
|
|
51
|
+
* @param {*} updateOptions
|
|
52
|
+
* @returns {Promise<DocumentReference>}
|
|
53
|
+
*/
|
|
54
|
+
async create(updateOptions = {}) {
|
|
55
|
+
const { docId } = updateOptions;
|
|
56
|
+
if (!docId) {
|
|
57
|
+
throw new Error(
|
|
58
|
+
"FCMトークンのドキュメントIDはトークンそのものを指定してください",
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
return await super.create(updateOptions);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* FCMトークンは更新できないため、常にエラーを投げる
|
|
66
|
+
* @param {*} updateOptions
|
|
67
|
+
*/
|
|
68
|
+
async update(updateOptions = {}) {
|
|
69
|
+
throw new Error(
|
|
70
|
+
"FCMトークンは更新できません。新しいトークンでドキュメントを作成してください。",
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
@@ -364,6 +364,18 @@ export const oneLineFields = {
|
|
|
364
364
|
length: 20,
|
|
365
365
|
},
|
|
366
366
|
|
|
367
|
+
/** token */
|
|
368
|
+
token: {
|
|
369
|
+
...generalDefinitions.oneLine,
|
|
370
|
+
label: "トークン",
|
|
371
|
+
},
|
|
372
|
+
|
|
373
|
+
/** ユーザーID */
|
|
374
|
+
uid: {
|
|
375
|
+
...generalDefinitions.oneLine,
|
|
376
|
+
label: "ユーザーID",
|
|
377
|
+
},
|
|
378
|
+
|
|
367
379
|
/** 作業内容 */
|
|
368
380
|
workDescription: {
|
|
369
381
|
...generalDefinitions.oneLine,
|