@@ -20,27 +20,91 @@ import {
2020import { catalogueFetcherGraphqlBuilder , createCatalogueFetcher } from './catalogue' ;
2121import { ClientInterface } from './client' ;
2222
23+ function convertDates ( intent : CreateSubscriptionContractInputRequest | UpdateSubscriptionContractInputRequest ) {
24+ if ( ! intent . status ) {
25+ return {
26+ ...intent ,
27+ } ;
28+ }
29+
30+ let results : any = {
31+ ...intent ,
32+ } ;
33+
34+ if ( intent . status . renewAt ) {
35+ results = {
36+ ...results ,
37+ status : {
38+ ...results . status ,
39+ renewAt : intent . status . renewAt . toISOString ( ) ,
40+ } ,
41+ } ;
42+ }
43+
44+ if ( intent . status . activeUntil ) {
45+ results = {
46+ ...results ,
47+ status : {
48+ ...results . status ,
49+ activeUntil : intent . status . activeUntil . toISOString ( ) ,
50+ } ,
51+ } ;
52+ }
53+ return results ;
54+ }
55+
56+ function convertEnums ( intent : CreateSubscriptionContractInputRequest | UpdateSubscriptionContractInputRequest ) {
57+ let results : any = {
58+ ...intent ,
59+ } ;
60+
61+ if ( intent . initial && intent . initial . meteredVariables ) {
62+ results = {
63+ ...results ,
64+ initial : {
65+ ...intent . initial ,
66+ meteredVariables : intent . initial . meteredVariables . map ( ( variable : any ) => {
67+ return {
68+ ...variable ,
69+ tierType : typeof variable . tierType === 'string' ? variable . tierType : variable . tierType . value ,
70+ } ;
71+ } ) ,
72+ } ,
73+ } ;
74+ }
75+
76+ if ( intent . recurring && intent . recurring . meteredVariables ) {
77+ results = {
78+ ...results ,
79+ recurring : {
80+ ...intent . recurring ,
81+ meteredVariables : intent . recurring . meteredVariables . map ( ( variable : any ) => {
82+ return {
83+ ...variable ,
84+ tierType : typeof variable . tierType === 'string' ? variable . tierType : variable . tierType . value ,
85+ } ;
86+ } ) ,
87+ } ,
88+ } ;
89+ }
90+
91+ return results ;
92+ }
93+
2394export function createSubscriptionContractManager ( apiClient : ClientInterface ) {
2495 const create = async (
2596 intentSubsctiptionContract : CreateSubscriptionContractInputRequest ,
2697 extraResultQuery ?: any ,
2798 ) : Promise < any > => {
28- const intent = createSubscriptionContractInputRequest . parse ( intentSubsctiptionContract ) ;
99+ const intent = createSubscriptionContractInputRequest . parse ( convertEnums ( intentSubsctiptionContract ) ) ;
29100 const api = apiClient . pimApi ;
30101
31102 const mutation = {
32103 mutation : {
33104 subscriptionContract : {
34105 create : {
35106 __args : {
36- input : {
37- ...intent ,
38- status : {
39- ...intent . status ,
40- renewAt : intent . status . renewAt . toISOString ( ) ,
41- activeUntil : intent . status . activeUntil . toISOString ( ) ,
42- } ,
43- } ,
107+ input : convertDates ( intent ) ,
44108 } ,
45109 id : true ,
46110 createdAt : true ,
@@ -58,7 +122,7 @@ export function createSubscriptionContractManager(apiClient: ClientInterface) {
58122 intentSubsctiptionContract : UpdateSubscriptionContractInputRequest ,
59123 extraResultQuery ?: any ,
60124 ) : Promise < any > => {
61- const intent = updateSubscriptionContractInputRequest . parse ( intentSubsctiptionContract ) ;
125+ const intent = updateSubscriptionContractInputRequest . parse ( convertEnums ( intentSubsctiptionContract ) ) ;
62126 const api = apiClient . pimApi ;
63127
64128 const mutation = {
@@ -67,9 +131,7 @@ export function createSubscriptionContractManager(apiClient: ClientInterface) {
67131 update : {
68132 __args : {
69133 id,
70- input : {
71- ...intent ,
72- } ,
134+ input : convertDates ( intent ) ,
73135 } ,
74136 id : true ,
75137 updatedAt : true ,
0 commit comments