import json from locust import HttpUser, task class ContentReviewUser(HttpUser): common_headers = { 'apollographql-client-name': 'frontend-content', 'orchard-identity-id': '8fa71ad1-f02c-4191-8c78-9ffa45b57346', 'orchard-profile-id': '84843', 'content-type': 'application/json', 'orchard-profile-type': 'ContentProfile', 'orchard-identity-uuid': '8fa71ad1-f02c-4191-8c78-9ffa45b57346', } @task(1) def content_review_get_identity_by_id(self): self.client.post( "https://qa-graphql-gateway.theorchard.io/graphql?op=getIdentityById", json.dumps({ "operationName": "getIdentityById", "variables": { "identityId": "8fa71ad1-f02c-4191-8c78-9ffa45b57346", "profileUUID": "ba8c04da-08d2-453e-bd62-9e2761142449", "featureFilter": "orchard_suite_|content_review_" }, "query": "query getIdentityById($identityId: String!, $profileUUID: String, $featureFilter: String) {\n identityById(identityId: $identityId) {\n id\n firstName\n lastName\n name\n email\n picture\n localization\n numberFormat\n canManageUsers\n applications {\n id\n name\n url\n __typename\n }\n userTypes\n userAccounts {\n vendorId\n auth0Primary\n __typename\n }\n profiles(profileUUID: $profileUUID) {\n profileId\n profileName\n profileType\n profileTypeName\n profileUUID\n resources {\n id\n type\n name\n roles\n __typename\n }\n features(prefix: $featureFilter) {\n feature\n value\n __typename\n }\n __typename\n }\n __typename\n }\n}\n" }), headers=ContentReviewUser.common_headers ) @task(2) def content_review_get_vendor_by_vendor_id(self): self.client.post( "https://qa-graphql-gateway.theorchard.io/graphql?op=getVendorByVendorId", json.dumps({ "operationName": "getVendorByVendorId", "variables": { "vendorId": 6971 }, "query": "query getVendorByVendorId($vendorId: Int!) {\n vendorByVendorId(vendorId: $vendorId) {\n name\n serviceTier(showOnDemand: true) {\n name\n __typename\n }\n companyBrand(showOnDemand: true) {\n name\n parentCompany(showOnDemand: true) {\n name\n __typename\n }\n __typename\n }\n __typename\n }\n}\n" }), headers=ContentReviewUser.common_headers ) @task(3) def content_review_review_queue_search(self): self.client.post( "https://qa-graphql-gateway.theorchard.io/graphql?op=ReviewQueueSearch", json.dumps({ "operationName": "ReviewQueueSearch", "variables": { "q": "", "facets": [], "orderBy": [ { "dir": "ASC", "field": "saleStartDate" } ] }, "query": "query ReviewQueueSearch($q: String, $facets: [SearchFacetParam!], $orderBy: [OrderByParam!], $offset: Int, $limit: Int) {\n reviewQueueSearch(\n q: $q\n facets: $facets\n orderBy: $orderBy\n offset: $offset\n limit: $limit\n ) {\n totalCount\n items {\n accountId\n accountName\n addedAt\n featuringArtist\n format\n imageLocation\n imprint\n labelId\n labelName\n preorderDate\n primaryArtist\n productId\n productName\n productStatus\n reviewQueueId\n saleStartDate\n specialInstructions\n subaccountId\n subaccountName\n upc\n metadataLanguageName\n notices {\n code\n reason\n level\n __typename\n }\n __typename\n }\n filterOptions {\n accountId {\n id\n name\n extra {\n labelId\n labelName\n __typename\n }\n __typename\n }\n productStatus {\n id\n name\n __typename\n }\n metadataLanguageCode {\n id\n name\n __typename\n }\n noticeCode {\n id\n name\n __typename\n }\n __typename\n }\n __typename\n }\n}\n" }), headers=ContentReviewUser.common_headers ) @task(4) def content_review_review_queue_item_query(self): self.client.post( "https://qa-graphql-gateway.theorchard.io/graphql?op=ReviewQueueItemQuery", json.dumps({ "operationName": "ReviewQueueItemQuery", "variables": { "reviewQueueId": 833 }, "query": "query ReviewQueueItemQuery($reviewQueueId: Int!) {\n reviewQueueItem(reviewQueueId: $reviewQueueId) {\n reviewQueueId\n productId\n __typename\n }\n}\n" }), headers=ContentReviewUser.common_headers ) @task(5) def content_review_product_query(self): self.client.post( "https://qa-graphql-gateway.theorchard.io/graphql?op=ProductQuery", json.dumps({ "operationName": "ProductQuery", "variables": { "id": "3574263" }, "query": "query ProductQuery($id: String!) {\n product(productId: $id, cached: false) {\n productId\n productName\n productCode\n vendorId\n subaccountId\n imprint\n upc\n deliveredVersion\n format\n metadataLanguage {\n name\n __typename\n }\n cLine\n version\n specialInstructions\n imageLocation\n validation(validationContext: POST_SUBMISSION) {\n errors {\n reason\n code\n __typename\n }\n warnings {\n reason\n code\n __typename\n }\n __typename\n }\n label {\n ... on Vendor {\n id {\n vendorId\n subaccountId\n __typename\n }\n name\n __typename\n }\n ... on Subaccount {\n id {\n vendorId\n subaccountId\n __typename\n }\n name\n vendor {\n name\n __typename\n }\n __typename\n }\n __typename\n }\n subgenre {\n id\n name\n genre {\n id\n name\n __typename\n }\n __typename\n }\n artists {\n artistId\n artistName\n artistType\n __typename\n }\n tracks {\n id\n trackNumber\n durationMinutes\n durationSeconds\n trackName\n version\n isrc\n offerType\n primaryArtists {\n artistName\n artistType\n __typename\n }\n writers {\n trackWriterName\n trackWriterType\n __typename\n }\n pInfo\n explicit\n previewStartTime\n language {\n name\n __typename\n }\n lyrics\n tuid\n validation(validationContext: POST_SUBMISSION) {\n errors {\n reason\n code\n __typename\n }\n warnings {\n reason\n code\n __typename\n }\n __typename\n }\n instantGrats {\n date\n store {\n storeId\n storeName\n __typename\n }\n track {\n trackName\n __typename\n }\n __typename\n }\n labelSoundRecording {\n participations {\n participant {\n name\n __typename\n }\n role {\n name\n __typename\n }\n __typename\n }\n __typename\n }\n __typename\n }\n releaseDate\n saleStartDate\n preorderDate\n previewable\n __typename\n }\n}\n" }), headers=ContentReviewUser.common_headers )