| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- ;path:[?query_path]
- ;method:[?query_method]
- ;query:[?$out::query]
- ;body:[?$out::body]
-
- #proc mshop_api.init
- #se mshop_state_table=mshop_state
- #endproc
-
- #proc mshop_api.load_state(id)
- #src state
- #r
- #call mshop_api.init_state_tables_sql
-
- select
- state,
- Параметры
- from [mshop_state_table] where ref=@'[id]'@ and Приложение='[mshop_api.app]';
-
- #query
- #endsrc
-
- #if {state.Параметры#size}
- #out_load_from_var params,@state.Параметры
- #dump_to_ex_params params
- >{state.state}
- #else
- #call mshop_api.new_state($id)
- >{{}}
- #endif
- #endproc
-
- #proc mshop_api.init_tables_sql
-
- CREATE TABLE IF NOT EXISTS [mshop_state_table]
- (
- ССЫЛКА int primary key auto_increment,
- ПРИЛОЖЕНИЕ VARCHAR(50),
- REF VARCHAR(40),
- ОТВЕТСТВЕННЫЙ INT NOT NULL,
- ДАТА DATETIME,
- ИЗМЕНЕН DATETIME,
- ПАРАМЕТРЫ VARCHAR(8128),
- STATE MEDIUMTEXT,
- KEY(ДАТА),
- UNIQUE INDEX(REF)
-
- )
-
- #endproc
-
- #proc mshop_api.new_state(id)
- @{
- [#mshop_api.init_tables_sql];
- insert into [mshop_state_table](ПРИЛОЖЕНИЕ,REF,ОТВЕТСТВЕННЫЙ,ДАТА,ИЗМЕНЕН,STATE)
- values(@'[mshop_api.app]'@,@'[id]'@,'[?user_ref]',NOW(),NOW(),'{{}}')
- }@
- #endproc
-
- #proc mshop_api.save_state(id,state_obj,vars)
-
- @{[#mshop_api.init_tables_sql]}@
-
- #out_save params
- #o params
- #r
- #for param=([vars])
- #ex_params_dump [var]*
- #endfor
- #out_restore params
- @{
- update [mshop_state_table] set
- STATE=@'[state_obj]'@ ,
- ИЗМЕНЕН=NOW(),
- Параметры=@'[$out::params]'@
- where ref=@'[id]'@ and Приложение='[mshop_api.app]';
- }@
- #endproc
-
-
- #proc mshop_api.query
- ; разбор пути /app/procname
- #json_pretty 0
- #v (empty,app,procname|/)=[?query_path]
- #se j:result={{}}
- #se mshop_api.app=[app]
- #try
-
- #include_module mshop_[app]_module
- #v j:query=[$out::query]
- #v j:body=[$out::body]
- #v user_ref=@{select ссылка from spravochniki_sotrudniki where ref=@'[j:body.?access_payload.sp_ref]'@ }@
- #call mshop_[app].[query_method].[procname]
-
- #catch
-
- #se j:result={{"result":false,message:"[$f::json_quote($%exception.msg)]"}}
-
- #endtry
-
- [j:result]
- #endproc
|