Coverage for gws-app / gws / plugin / qfieldcloud / api.py: 0%
180 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-03 10:12 +0100
« prev ^ index » next coverage.py v7.13.4, created at 2026-03-03 10:12 +0100
1"""API definition from swagger.yaml"""
3import inspect
4from datetime import datetime
5from typing import Any, List, Optional, TypeVar, get_args, get_origin
7import gws
9class JobStatusEnum(gws.Enum):
10 pending = 'pending'
11 queued = 'queued'
12 started = 'started'
13 finished = 'finished'
14 stopped = 'stopped'
15 failed = 'failed'
18class LastStatusEnum(gws.Enum):
19 pending = 'pending'
20 started = 'started'
21 applied = 'applied'
22 conflict = 'conflict'
23 not_applied = 'not_applied'
24 error = 'error'
25 ignored = 'ignored'
26 unpermitted = 'unpermitted'
29class OrganizationMemberRoleEnum(gws.Enum):
30 admin = 'admin'
31 member = 'member'
34class ProjectCollaboratorRoleEnum(gws.Enum):
35 admin = 'admin'
36 manager = 'manager'
37 editor = 'editor'
38 reporter = 'reporter'
39 reader = 'reader'
42class ProjectStatusEnum(gws.Enum):
43 ok = 'ok'
44 busy = 'busy'
45 failed = 'failed'
48class TypeEnum(gws.Enum):
49 package = 'package'
50 delta_apply = 'delta_apply'
51 process_projectfile = 'process_projectfile'
54# Data Classes
57class Login(gws.Data):
58 password: str
59 username: Optional[str]
60 email: Optional[str]
63class CompleteUser(gws.Data):
64 username: str
65 type: int
66 full_name: str
67 avatar_url: str
68 email: Optional[str]
69 first_name: Optional[str]
70 last_name: Optional[str]
73class PublicInfoUser(gws.Data):
74 username: str
75 type: int
76 full_name: str
77 avatar_url: str
78 username_display: str
81class Delta(gws.Data):
82 deltafile_id: str
83 content: Any
84 id: str
85 created_by: str
86 created_at: datetime
87 updated_at: datetime
88 status: str
89 output: str
90 last_status: Optional[LastStatusEnum]
91 last_feedback: Optional[Any]
94class Job(gws.Data):
95 type: TypeEnum
96 id: str
97 created_at: datetime
98 created_by: int
99 project_id: str
100 status: JobStatusEnum
101 updated_at: datetime
102 started_at: Optional[datetime]
103 finished_at: Optional[datetime]
106class Organization(gws.Data):
107 username: str
108 type: int
109 avatar_url: str
110 members: str
111 organization_owner: str
112 membership_role: str
113 membership_role_origin: str
114 membership_is_public: bool
115 teams: List[str]
116 email: Optional[str]
119class OrganizationMember(gws.Data):
120 organization: str
121 member: str
122 role: OrganizationMemberRoleEnum
123 is_public: Optional[bool]
126class Project(gws.Data):
127 id: str
128 name: str
129 owner: str
130 created_at: datetime
131 updated_at: datetime
132 can_repackage: bool
133 needs_repackaging: bool
134 status: ProjectStatusEnum
135 user_role: str
136 user_role_origin: str
137 is_shared_datasets_project: bool
138 is_attachment_download_on_demand: bool
139 description: Optional[str]
140 private: Optional[bool]
141 is_public: Optional[bool]
142 data_last_packaged_at: Optional[datetime]
143 data_last_updated_at: Optional[datetime]
144 shared_datasets_project_id: Optional[str]
145 is_featured: Optional[bool]
148class ProjectCollaborator(gws.Data):
149 collaborator: str
150 project_id: str
151 created_by: str
152 updated_by: str
153 created_at: datetime
154 updated_at: datetime
155 role: Optional[ProjectCollaboratorRoleEnum]
158class Team(gws.Data):
159 team: str
160 organization: str
161 members: List[str]
164class TeamMember(gws.Data):
165 member: str
168## not in swagger.yaml but used in code
171class Package(gws.Data):
172 files: List[dict]
173 layers: List[dict]
174 status: JobStatusEnum
175 package_id: str
176 packaged_at: datetime
177 data_last_updated_at: datetime
180class AuthProvider(gws.Data):
181 type: str
182 id: str
183 name: str
186class UserType(gws.Enum):
187 person = 1
188 organization = 2
189 team = 3
192class AuthToken(gws.Data):
193 token: str
194 expires_at: datetime
195 username: str
196 type: UserType
197 full_name: str
198 avatar_url: str
199 email: Optional[str]
200 first_name: Optional[str]
201 last_name: Optional[str]
204class PostJobPayload(gws.Data):
205 type: TypeEnum
206 project_id: str
209class DeltasPayload(gws.Data):
210 deltas: list[dict]
211 files: list[dict]
212 id: str
213 project: str
214 version: str
217class StoredDelta(gws.Data):
218 id: str
219 deltafile_id: str
220 created_by: str
221 created_at: str
222 updated_at: str
223 status: str
224 client_id: str
225 output: Optional[dict]
226 last_status: str
227 last_feedback: Optional[dict]
228 content: dict
231class PackageFile(gws.Data):
232 name: str
233 size: int
234 uploaded_at: str
235 is_attachment: bool
236 md5sum: str
237 last_modified: str
238 sha256: str