| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 | 
							- class CloudObject {
 
-     id: string ;
 
-     className: string;
 
-     data: Record<string, any> = {};
 
-     createdAt: string | null = null; // 添加 createdAt 属性
 
-     updatedAt: string | null = null; // 添加 updatedAt 属性
 
-     constructor(className: string) {
 
-         this.className = className;
 
-     }
 
-     toPointer(): { __type: string, className: string, objectId: string } {
 
-         return { "__type": "Pointer", "className": this.className, "objectId": this.id };
 
-     }
 
-     set(json: Record<string, any>): void {
 
-         Object.keys(json).forEach(key => {
 
-             if (["objectId", "id", "createdAt", "updatedAt", "ACL"].indexOf(key) > -1) {
 
-                 return;
 
-             }
 
-             this.data[key] = json[key];
 
-         });
 
-     }
 
-     get(key: string): any {
 
-         return this.data[key] || null;
 
-     }
 
-     async save(): Promise<this> {
 
-         let method: string = "POST";
 
-         let url: string = `http://dev.fmode.cn:1337/parse/classes/${this.className}`;
 
-         // 更新
 
-         if (this.id) {
 
-             url += `/${this.id}`;
 
-             method = "PUT";
 
-         }
 
-         let body: string = JSON.stringify(this.data);
 
-         let response: Response = await fetch(url, {
 
-             "headers": {
 
-                 "content-type": "application/json;charset=UTF-8",
 
-                 "x-parse-application-id": "dev"
 
-             },
 
-             "body": body,
 
-             "method": method,
 
-             "mode": "cors",
 
-             "credentials": "omit"
 
-         });
 
-         let result: any = await response.json();
 
-         if (result.error) {
 
-             console.error(result.error);
 
-         }
 
-         if (result.objectId) {
 
-             this.id = result.objectId;
 
-         }
 
-         return this;
 
-     }
 
-     async destroy(): Promise<boolean> {
 
-         if (!this.id) return false;
 
-         let response: Response = await fetch(`http://dev.fmode.cn:1337/parse/classes/Doctor/${this.id}`, {
 
-             "headers": {
 
-                 "x-parse-application-id": "dev"
 
-             },
 
-             "body": null,
 
-             "method": "DELETE",
 
-             "mode": "cors",
 
-             "credentials": "omit"
 
-         });
 
-         let result: any = await response.json();
 
-         if (result) {
 
-             // this.id = null;
 
-         }
 
-         return true;
 
-     }
 
- }
 
- class CloudQuery {
 
-     className: string;
 
-     whereOptions: Record<string, any> = {};
 
-     constructor(className: string) {
 
-         this.className = className;
 
-     }
 
-     greaterThan(key: string, value: any): void {
 
-         if (!this.whereOptions[key]) this.whereOptions[key] = {};
 
-         this.whereOptions[key]["$gt"] = value;
 
-     }
 
-     greaterThanAndEqualTo(key: string, value: any): void {
 
-         if (!this.whereOptions[key]) this.whereOptions[key] = {};
 
-         this.whereOptions[key]["$gte"] = value;
 
-     }
 
-     lessThan(key: string, value: any): void {
 
-         if (!this.whereOptions[key]) this.whereOptions[key] = {};
 
-         this.whereOptions[key]["$lt"] = value;
 
-     }
 
-     lessThanAndEqualTo(key: string, value: any): void {
 
-         if (!this.whereOptions[key]) this.whereOptions[key] = {};
 
-         this.whereOptions[key]["$lte"] = value;
 
-     }
 
-     equalTo(key: string, value: any): void {
 
-         this.whereOptions[key] = value;
 
-     }
 
-     async get(id: string): Promise<Record<string, any>> {
 
-         let url: string = `http://dev.fmode.cn:1337/parse/classes/${this.className}/${id}?`;
 
-         let response: Response = await fetch(url, {
 
-             "headers": {
 
-                 "if-none-match": "W/\"1f0-ghxH2EwTk6Blz0g89ivf2adBDKY\"",
 
-                 "x-parse-application-id": "dev"
 
-             },
 
-             "body": null,
 
-             "method": "GET",
 
-             "mode": "cors",
 
-             "credentials": "omit"
 
-         });
 
-         let json: any = await response.json();
 
-         return json || {};
 
-     }
 
-     async fetchData(url: string): Promise<any> {
 
-         try {
 
-             let response: Response = await fetch(url, {
 
-                 "headers": {
 
-                     "if-none-match": "W/\"1f0-ghxH2EwTk6Blz0g89ivf2adBDKY\"",
 
-                     "x-parse-application-id": "dev"
 
-                 },
 
-                 "body": null,
 
-                 "method": "GET",
 
-                 "mode": "cors",
 
-                 "credentials": "omit"
 
-             });
 
-             return await response.json();
 
-         } catch (error) {
 
-             console.error("Fetch error:", error);
 
-             return null;
 
-         }
 
-     }
 
-     async find(): Promise<Record<string, any>[]> {
 
-         let url: string = `http://dev.fmode.cn:1337/parse/classes/${this.className}?`;
 
-         if (Object.keys(this.whereOptions).length) {
 
-             let whereStr: string = JSON.stringify(this.whereOptions);
 
-             url += `where=${whereStr}`;
 
-         }
 
-         let json: any = await this.fetchData(url);
 
-         return json?.results || [];
 
-     }
 
-     async first(): Promise<CloudObject | null> {
 
-         let url: string = `http://dev.fmode.cn:1337/parse/classes/${this.className}?`;
 
-         if (Object.keys(this.whereOptions).length) {
 
-             let whereStr: string = JSON.stringify(this.whereOptions);
 
-             url += `where=${whereStr}`;
 
-         }
 
-         let json: any = await this.fetchData(url);
 
-         let exists: Record<string, any> | null = json?.results?.[0] || null;
 
-         if (exists) {
 
-             let existsObject: CloudObject = new CloudObject(this.className);
 
-             existsObject.set(exists);
 
-             existsObject.id = exists.objectId;
 
-             existsObject.createdAt = exists.createdAt;
 
-             existsObject.updatedAt = exists.updatedAt;
 
-             return existsObject;
 
-         }
 
-         return null;
 
-     }
 
- }
 
- export { CloudObject, CloudQuery };
 
 
  |