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

1"""API definition from swagger.yaml""" 

2 

3import inspect 

4from datetime import datetime 

5from typing import Any, List, Optional, TypeVar, get_args, get_origin 

6 

7import gws 

8 

9class JobStatusEnum(gws.Enum): 

10 pending = 'pending' 

11 queued = 'queued' 

12 started = 'started' 

13 finished = 'finished' 

14 stopped = 'stopped' 

15 failed = 'failed' 

16 

17 

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' 

27 

28 

29class OrganizationMemberRoleEnum(gws.Enum): 

30 admin = 'admin' 

31 member = 'member' 

32 

33 

34class ProjectCollaboratorRoleEnum(gws.Enum): 

35 admin = 'admin' 

36 manager = 'manager' 

37 editor = 'editor' 

38 reporter = 'reporter' 

39 reader = 'reader' 

40 

41 

42class ProjectStatusEnum(gws.Enum): 

43 ok = 'ok' 

44 busy = 'busy' 

45 failed = 'failed' 

46 

47 

48class TypeEnum(gws.Enum): 

49 package = 'package' 

50 delta_apply = 'delta_apply' 

51 process_projectfile = 'process_projectfile' 

52 

53 

54# Data Classes 

55 

56 

57class Login(gws.Data): 

58 password: str 

59 username: Optional[str] 

60 email: Optional[str] 

61 

62 

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] 

71 

72 

73class PublicInfoUser(gws.Data): 

74 username: str 

75 type: int 

76 full_name: str 

77 avatar_url: str 

78 username_display: str 

79 

80 

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] 

92 

93 

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] 

104 

105 

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] 

117 

118 

119class OrganizationMember(gws.Data): 

120 organization: str 

121 member: str 

122 role: OrganizationMemberRoleEnum 

123 is_public: Optional[bool] 

124 

125 

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] 

146 

147 

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] 

156 

157 

158class Team(gws.Data): 

159 team: str 

160 organization: str 

161 members: List[str] 

162 

163 

164class TeamMember(gws.Data): 

165 member: str 

166 

167 

168## not in swagger.yaml but used in code 

169 

170 

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 

178 

179 

180class AuthProvider(gws.Data): 

181 type: str 

182 id: str 

183 name: str 

184 

185 

186class UserType(gws.Enum): 

187 person = 1 

188 organization = 2 

189 team = 3 

190 

191 

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] 

202 

203 

204class PostJobPayload(gws.Data): 

205 type: TypeEnum 

206 project_id: str 

207 

208 

209class DeltasPayload(gws.Data): 

210 deltas: list[dict] 

211 files: list[dict] 

212 id: str 

213 project: str 

214 version: str 

215 

216 

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 

229 

230 

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