mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:27:42 +00:00
feat: sequence and timestamp on searchrequests (#468)
* feat: reread events * feat: sequence and timestamo on search requests * feat: sequence and timestamo on search requests * fix: better naming * fix: log errors * fix: read sequence before search request
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/caos/logging"
|
||||
view_model "github.com/caos/zitadel/internal/view/model"
|
||||
"github.com/caos/zitadel/pkg/grpc/admin"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
)
|
||||
|
||||
func viewsFromModel(views []*view_model.View) []*admin.View {
|
||||
@@ -24,10 +26,14 @@ func failedEventsFromModel(failedEvents []*view_model.FailedEvent) []*admin.Fail
|
||||
}
|
||||
|
||||
func viewFromModel(view *view_model.View) *admin.View {
|
||||
timestamp, err := ptypes.TimestampProto(view.CurrentTimestamp)
|
||||
logging.Log("GRPC-KSo03").OnError(err).Debug("unable to parse timestamp")
|
||||
|
||||
return &admin.View{
|
||||
Database: view.Database,
|
||||
ViewName: view.ViewName,
|
||||
Sequence: view.CurrentSequence,
|
||||
Database: view.Database,
|
||||
ViewName: view.ViewName,
|
||||
ProcessedSequence: view.CurrentSequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -103,11 +103,15 @@ func iamMemberSearchMethodToModel(key admin.SearchMethod) model.SearchMethod {
|
||||
}
|
||||
|
||||
func iamMemberSearchResponseFromModel(resp *iam_model.IamMemberSearchResponse) *admin.IamMemberSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(resp.Timestamp)
|
||||
logging.Log("GRPC-5shu8").OnError(err).Debug("date parse failed")
|
||||
return &admin.IamMemberSearchResponse{
|
||||
Limit: resp.Limit,
|
||||
Offset: resp.Offset,
|
||||
TotalResult: resp.TotalResult,
|
||||
Result: iamMembersFromView(resp.Result),
|
||||
Limit: resp.Limit,
|
||||
Offset: resp.Offset,
|
||||
TotalResult: resp.TotalResult,
|
||||
Result: iamMembersFromView(resp.Result),
|
||||
ProcessedSequence: resp.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
func iamMembersFromView(viewMembers []*iam_model.IamMemberView) []*admin.IamMemberView {
|
||||
|
@@ -21,12 +21,7 @@ func (s *Server) SearchOrgs(ctx context.Context, request *admin.OrgSearchRequest
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin.OrgSearchResponse{
|
||||
Result: orgViewsFromModel(result.Result),
|
||||
Limit: request.Limit,
|
||||
Offset: request.Offset,
|
||||
TotalResult: result.TotalResult,
|
||||
}, nil
|
||||
return orgSearchResponseFromModel(result), nil
|
||||
}
|
||||
|
||||
func (s *Server) IsOrgUnique(ctx context.Context, request *admin.UniqueOrgRequest) (org *admin.UniqueOrgResponse, err error) {
|
||||
|
@@ -72,6 +72,19 @@ func setUpOrgResponseFromModel(setUp *admin_model.SetupOrg) *admin.OrgSetUpRespo
|
||||
}
|
||||
}
|
||||
|
||||
func orgSearchResponseFromModel(request *org_model.OrgSearchResult) *admin.OrgSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(request.Timestamp)
|
||||
logging.Log("GRPC-shu7s").OnError(err).Debug("unable to get timestamp from time")
|
||||
return &admin.OrgSearchResponse{
|
||||
Result: orgViewsFromModel(request.Result),
|
||||
Limit: request.Limit,
|
||||
Offset: request.Offset,
|
||||
TotalResult: request.TotalResult,
|
||||
ProcessedSequence: request.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
func orgViewsFromModel(orgs []*org_model.OrgView) []*admin.Org {
|
||||
result := make([]*admin.Org, len(orgs))
|
||||
for i, org := range orgs {
|
||||
|
@@ -1,8 +1,10 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"github.com/caos/logging"
|
||||
grant_model "github.com/caos/zitadel/internal/usergrant/model"
|
||||
"github.com/caos/zitadel/pkg/grpc/auth"
|
||||
"github.com/golang/protobuf/ptypes"
|
||||
)
|
||||
|
||||
func userGrantSearchRequestsToModel(request *auth.UserGrantSearchRequest) *grant_model.UserGrantSearchRequest {
|
||||
@@ -76,11 +78,16 @@ func myProjectOrgSearchKeyToModel(key auth.MyProjectOrgSearchKey) grant_model.Us
|
||||
}
|
||||
|
||||
func userGrantSearchResponseFromModel(response *grant_model.UserGrantSearchResponse) *auth.UserGrantSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-Lsp0d").OnError(err).Debug("unable to parse timestamp")
|
||||
|
||||
return &auth.UserGrantSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: userGrantViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: userGrantViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -146,11 +146,15 @@ func applicationSearchKeyToModel(key management.ApplicationSearchKey) proj_model
|
||||
}
|
||||
|
||||
func applicationSearchResponseFromModel(response *proj_model.ApplicationSearchResponse) *management.ApplicationSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-Lp06f").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.ApplicationSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: applicationViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: applicationViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -138,11 +138,15 @@ func orgDomainSearchKeyToModel(key management.OrgDomainSearchKey) org_model.OrgD
|
||||
}
|
||||
|
||||
func orgDomainSearchResponseFromModel(resp *org_model.OrgDomainSearchResponse) *management.OrgDomainSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(resp.Timestamp)
|
||||
logging.Log("GRPC-Mxi9w").OnError(err).Debug("unable to get timestamp from time")
|
||||
return &management.OrgDomainSearchResponse{
|
||||
Limit: resp.Limit,
|
||||
Offset: resp.Offset,
|
||||
TotalResult: resp.TotalResult,
|
||||
Result: orgDomainsFromModel(resp.Result),
|
||||
Limit: resp.Limit,
|
||||
Offset: resp.Offset,
|
||||
TotalResult: resp.TotalResult,
|
||||
Result: orgDomainsFromModel(resp.Result),
|
||||
ProcessedSequence: resp.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
func orgDomainsFromModel(viewDomains []*org_model.OrgDomainView) []*management.OrgDomainView {
|
||||
|
@@ -104,11 +104,15 @@ func orgMemberSearchMethodToModel(key management.SearchMethod) model.SearchMetho
|
||||
}
|
||||
|
||||
func orgMemberSearchResponseFromModel(resp *org_model.OrgMemberSearchResponse) *management.OrgMemberSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(resp.Timestamp)
|
||||
logging.Log("GRPC-Swmr6").OnError(err).Debug("date parse failed")
|
||||
return &management.OrgMemberSearchResponse{
|
||||
Limit: resp.Limit,
|
||||
Offset: resp.Offset,
|
||||
TotalResult: resp.TotalResult,
|
||||
Result: orgMembersFromView(resp.Result),
|
||||
Limit: resp.Limit,
|
||||
Offset: resp.Offset,
|
||||
TotalResult: resp.TotalResult,
|
||||
Result: orgMembersFromView(resp.Result),
|
||||
ProcessedSequence: resp.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
func orgMembersFromView(viewMembers []*org_model.OrgMemberView) []*management.OrgMemberView {
|
||||
|
@@ -105,8 +105,7 @@ func (s *Server) RemoveProjectRole(ctx context.Context, in *management.ProjectRo
|
||||
func (s *Server) SearchProjectRoles(ctx context.Context, in *management.ProjectRoleSearchRequest) (*management.ProjectRoleSearchResponse, error) {
|
||||
request := projectRoleSearchRequestsToModel(in)
|
||||
request.AppendMyOrgQuery(authz.GetCtxData(ctx).OrgID)
|
||||
request.AppendProjectQuery(in.ProjectId)
|
||||
response, err := s.project.SearchProjectRoles(ctx, request)
|
||||
response, err := s.project.SearchProjectRoles(ctx, in.ProjectId, request)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@@ -32,11 +32,15 @@ func projectFromModel(project *proj_model.Project) *management.Project {
|
||||
}
|
||||
|
||||
func projectSearchResponseFromModel(response *proj_model.ProjectViewSearchResponse) *management.ProjectSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-iejs3").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.ProjectSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,11 +71,16 @@ func projectViewFromModel(project *proj_model.ProjectView) *management.ProjectVi
|
||||
}
|
||||
|
||||
func projectRoleSearchResponseFromModel(response *proj_model.ProjectRoleSearchResponse) *management.ProjectRoleSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-Lps0c").OnError(err).Debug("unable to parse timestamp")
|
||||
|
||||
return &management.ProjectRoleSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectRoleViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectRoleViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -91,11 +91,15 @@ func projectGrantViewSearchKeyToModel(key management.ProjectGrantSearchKey) proj
|
||||
}
|
||||
|
||||
func projectGrantSearchResponseFromModel(response *proj_model.ProjectGrantViewSearchResponse) *management.ProjectGrantSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-MCjs7").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.ProjectGrantSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectGrantsFromGrantedProjectModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectGrantsFromGrantedProjectModel(response.Result),
|
||||
ViewTimestamp: timestamp,
|
||||
ProcessedSequence: response.Sequence,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -87,11 +87,15 @@ func projectGrantMemberSearchKeyToModel(key management.ProjectGrantMemberSearchK
|
||||
}
|
||||
|
||||
func projectGrantMemberSearchResponseFromModel(response *proj_model.ProjectGrantMemberSearchResponse) *management.ProjectGrantMemberSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-MSn6g").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.ProjectGrantMemberSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectGrantMemberViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectGrantMemberViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -45,11 +45,11 @@ func projectMemberChangeToModel(member *management.ProjectMemberChange) *proj_mo
|
||||
}
|
||||
}
|
||||
|
||||
func projectMemberSearchRequestsToModel(role *management.ProjectMemberSearchRequest) *proj_model.ProjectMemberSearchRequest {
|
||||
func projectMemberSearchRequestsToModel(member *management.ProjectMemberSearchRequest) *proj_model.ProjectMemberSearchRequest {
|
||||
return &proj_model.ProjectMemberSearchRequest{
|
||||
Offset: role.Offset,
|
||||
Limit: role.Limit,
|
||||
Queries: projectMemberSearchQueriesToModel(role.Queries),
|
||||
Offset: member.Offset,
|
||||
Limit: member.Limit,
|
||||
Queries: projectMemberSearchQueriesToModel(member.Queries),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,11 +85,15 @@ func projectMemberSearchKeyToModel(key management.ProjectMemberSearchKey) proj_m
|
||||
}
|
||||
|
||||
func projectMemberSearchResponseFromModel(response *proj_model.ProjectMemberSearchResponse) *management.ProjectMemberSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-LSo9j").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.ProjectMemberSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectMemberViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: projectMemberViewsFromModel(response.Result),
|
||||
ViewTimestamp: timestamp,
|
||||
ProcessedSequence: response.Sequence,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -335,11 +335,15 @@ func updateAddressToModel(address *management.UpdateUserAddressRequest) *usr_mod
|
||||
}
|
||||
|
||||
func userSearchResponseFromModel(response *usr_model.UserSearchResponse) *management.UserSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-aBezr").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.UserSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: userViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: userViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -131,11 +131,15 @@ func userGrantSearchKeyToModel(key management.UserGrantSearchKey) grant_model.Us
|
||||
}
|
||||
|
||||
func userGrantSearchResponseFromModel(response *grant_model.UserGrantSearchResponse) *management.UserGrantSearchResponse {
|
||||
timestamp, err := ptypes.TimestampProto(response.Timestamp)
|
||||
logging.Log("GRPC-Wd7hs").OnError(err).Debug("unable to parse timestamp")
|
||||
return &management.UserGrantSearchResponse{
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: userGrantViewsFromModel(response.Result),
|
||||
Offset: response.Offset,
|
||||
Limit: response.Limit,
|
||||
TotalResult: response.TotalResult,
|
||||
Result: userGrantViewsFromModel(response.Result),
|
||||
ProcessedSequence: response.Sequence,
|
||||
ViewTimestamp: timestamp,
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user