Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
doc-service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
eifel邓鹏飞
doc-service
Commits
a217a07e
Commit
a217a07e
authored
Sep 25, 2024
by
Bess严根旺
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'test'
parents
c07efb99
d3cdd203
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
67 additions
and
72 deletions
+67
-72
callback_command.go
console/callback_command.go
+0
-1
convert_command.go
console/convert_command.go
+18
-16
docserverproject.go
domain/entity/serversitemicros/docserverproject.go
+1
-1
docserverproject.go
...ity/serversitemicros/docserverproject/docserverproject.go
+3
-3
docserverproject_create.go
domain/entity/serversitemicros/docserverproject_create.go
+5
-12
docserverproject_update.go
domain/entity/serversitemicros/docserverproject_update.go
+10
-0
schema.go
domain/entity/serversitemicros/migrate/schema.go
+1
-1
runtime.go
domain/entity/serversitemicros/runtime/runtime.go
+2
-3
doc_server_project.go
domain/entity/serversitemicros/schema/doc_server_project.go
+4
-5
convert_reposity.go
domain/repository/convert_reposity.go
+6
-8
convert_service.go
domain/service/convert_service.go
+14
-3
go.mod
go.mod
+1
-2
go.sum
go.sum
+2
-17
No files found.
console/callback_command.go
View file @
a217a07e
...
@@ -102,7 +102,6 @@ func callBackUrl(c context.Context, projectId int32) (bool, string) {
...
@@ -102,7 +102,6 @@ func callBackUrl(c context.Context, projectId int32) (bool, string) {
docservercallback
.
ServerProjectID
(
projectId
),
docservercallback
.
ServerProjectID
(
projectId
),
)
.
First
(
c
)
)
.
First
(
c
)
fmt
.
Println
(
callInfo
)
var
msg
string
var
msg
string
var
res
bool
var
res
bool
res
=
true
res
=
true
...
...
console/convert_command.go
View file @
a217a07e
...
@@ -73,26 +73,29 @@ func toDoData(c context.Context) int8 {
...
@@ -73,26 +73,29 @@ func toDoData(c context.Context) int8 {
for
_
,
item
:=
range
projectData
{
for
_
,
item
:=
range
projectData
{
//执行转换
//执行转换
ali
:=
DoConversionToAli
(
c
,
item
.
ID
)
ali
,
msgError
:=
DoConversionToAli
(
c
,
item
.
ID
)
if
ali
{
fmt
.
Printf
(
"脚本请求阿里文件转换完成: %d
\n
"
,
item
.
ID
)
_
,
errUpdate
:=
db
.
GetServerSiteMicrosDB
()
.
DocServerProject
.
UpdateOneID
(
item
.
ID
)
.
SetStatus
(
1
)
.
Save
(
c
)
var
statusVal
int32
=
1
if
errUpdate
!=
nil
{
if
ali
==
false
{
log
.
Info
(
"修改状态出错"
+
errUpdate
.
Error
())
statusVal
=
5
continue
}
}
_
,
errUpdate
:=
db
.
GetServerSiteMicrosDB
()
.
DocServerProject
.
UpdateOneID
(
item
.
ID
)
.
SetStatus
(
statusVal
)
.
SetCallbackRes
(
msgError
.
Error
())
.
Save
(
c
)
if
errUpdate
!=
nil
{
log
.
Info
(
"修改状态出错"
+
errUpdate
.
Error
())
continue
}
}
log
.
Info
(
"脚本请求阿里文件转换完成: "
+
string
(
item
.
ID
))
log
.
Info
(
"脚本请求阿里文件转换完成: "
+
string
(
item
.
ID
))
fmt
.
Printf
(
"脚本请求阿里文件转换完成: %d
\n
"
,
item
.
ID
)
}
}
return
1
return
1
}
}
// 执行文件转换(脚本使用)
// 执行文件转换(脚本使用)
func
DoConversionToAli
(
c
context
.
Context
,
projectId
int32
)
bool
{
func
DoConversionToAli
(
c
context
.
Context
,
projectId
int32
)
(
bool
,
error
)
{
defer
recoverPanicToPro
()
defer
recoverPanicToPro
()
ConversionInfo
,
infoErr
:=
db
.
GetServerSiteMicrosDB
()
.
DocServerProject
.
Get
(
c
,
projectId
)
ConversionInfo
,
infoErr
:=
db
.
GetServerSiteMicrosDB
()
.
DocServerProject
.
Get
(
c
,
projectId
)
if
infoErr
!=
nil
{
if
infoErr
!=
nil
{
return
false
return
false
,
infoErr
}
}
IsPrivate
:=
false
IsPrivate
:=
false
if
ConversionInfo
.
IsPrivate
==
1
{
if
ConversionInfo
.
IsPrivate
==
1
{
...
@@ -109,25 +112,24 @@ func DoConversionToAli(c context.Context, projectId int32) bool {
...
@@ -109,25 +112,24 @@ func DoConversionToAli(c context.Context, projectId int32) bool {
}
}
//创建项目
//创建项目
createErr
:=
service2
.
NewConversion
()
.
CreateProject
()
createErr
:=
service2
.
NewConversion
()
.
CreateProject
(
ConversionInfo
.
ProjectName
)
if
createErr
!=
nil
{
if
createErr
!=
nil
{
log
.
Info
(
"创建项目出错"
+
createErr
.
Error
())
log
.
Info
(
"创建项目出错"
+
createErr
.
Error
())
return
false
return
false
,
createErr
}
}
//执行转换
//执行转换
result
,
errs
:=
service2
.
NewConversion
()
.
Conversion
(
request
)
result
,
errs
:=
service2
.
NewConversion
()
.
Conversion
(
request
)
fmt
.
Println
(
result
)
if
errs
!=
nil
{
if
errs
!=
nil
{
log
.
Info
(
"转换出错"
+
errs
.
Error
())
log
.
Info
(
"转换出错"
+
errs
.
Error
())
return
false
return
false
,
errs
}
}
taskId
:=
result
[
"body"
]
.
(
map
[
string
]
interface
{})[
"TaskId"
]
.
(
string
)
taskId
:=
result
[
"body"
]
.
(
map
[
string
]
interface
{})[
"TaskId"
]
.
(
string
)
//修改taskId
//修改taskId
_
,
errsInfo
:=
db
.
GetServerSiteMicrosDB
()
.
DocServerProject
.
UpdateOneID
(
projectId
)
.
SetTaskID
(
taskId
)
.
Save
(
c
)
_
,
errsInfo
:=
db
.
GetServerSiteMicrosDB
()
.
DocServerProject
.
UpdateOneID
(
projectId
)
.
SetTaskID
(
taskId
)
.
Save
(
c
)
if
errsInfo
!=
nil
{
if
errsInfo
!=
nil
{
log
.
Info
(
"入库出错"
+
errsInfo
.
Error
())
log
.
Info
(
"入库出错"
+
errsInfo
.
Error
())
return
false
return
false
,
errs
}
}
return
true
return
true
,
nil
}
}
domain/entity/serversitemicros/docserverproject.go
View file @
a217a07e
...
@@ -34,7 +34,7 @@ type DocServerProject struct {
...
@@ -34,7 +34,7 @@ type DocServerProject struct {
AppID
int32
`json:"app_id,omitempty"`
AppID
int32
`json:"app_id,omitempty"`
// 是否私有 1 是 0 否
// 是否私有 1 是 0 否
IsPrivate
int8
`json:"is_private,omitempty"`
IsPrivate
int8
`json:"is_private,omitempty"`
// 状态 0 待执行 1 创建转换(待获取进度),2 进度完成待回调 3,回调成功
(全部成功)
// 状态 0 待执行 1 创建转换(待获取进度),2 进度完成待回调 3,回调成功
(全部成功) 4 回调失败 5,执行转换失败
Status
int32
`json:"status,omitempty"`
Status
int32
`json:"status,omitempty"`
// 回调信息
// 回调信息
CallbackRes
string
`json:"callback_res,omitempty"`
CallbackRes
string
`json:"callback_res,omitempty"`
...
...
domain/entity/serversitemicros/docserverproject/docserverproject.go
View file @
a217a07e
...
@@ -70,7 +70,7 @@ func ValidColumn(column string) bool {
...
@@ -70,7 +70,7 @@ func ValidColumn(column string) bool {
//
//
// import _ "doc-service/domain/entity/serversitemicros/runtime"
// import _ "doc-service/domain/entity/serversitemicros/runtime"
var
(
var
(
Hooks
[
5
]
ent
.
Hook
Hooks
[
4
]
ent
.
Hook
// DefaultProjectName holds the default value on creation for the "project_name" field.
// DefaultProjectName holds the default value on creation for the "project_name" field.
DefaultProjectName
string
DefaultProjectName
string
// DefaultSourceType holds the default value on creation for the "source_type" field.
// DefaultSourceType holds the default value on creation for the "source_type" field.
...
@@ -89,8 +89,8 @@ var (
...
@@ -89,8 +89,8 @@ var (
DefaultIsPrivate
int8
DefaultIsPrivate
int8
// DefaultStatus holds the default value on creation for the "status" field.
// DefaultStatus holds the default value on creation for the "status" field.
DefaultStatus
int32
DefaultStatus
int32
//
DefaultCallbackRes holds the default value on creation for the "callback_res" field
.
//
CallbackResValidator is a validator for the "callback_res" field. It is called by the builders before save
.
DefaultCallbackRes
string
CallbackResValidator
func
(
string
)
error
)
)
// OrderOption defines the ordering options for the DocServerProject queries.
// OrderOption defines the ordering options for the DocServerProject queries.
...
...
domain/entity/serversitemicros/docserverproject_create.go
View file @
a217a07e
...
@@ -152,14 +152,6 @@ func (dspc *DocServerProjectCreate) SetCallbackRes(s string) *DocServerProjectCr
...
@@ -152,14 +152,6 @@ func (dspc *DocServerProjectCreate) SetCallbackRes(s string) *DocServerProjectCr
return
dspc
return
dspc
}
}
// SetNillableCallbackRes sets the "callback_res" field if the given value is not nil.
func
(
dspc
*
DocServerProjectCreate
)
SetNillableCallbackRes
(
s
*
string
)
*
DocServerProjectCreate
{
if
s
!=
nil
{
dspc
.
SetCallbackRes
(
*
s
)
}
return
dspc
}
// SetCreatedAt sets the "created_at" field.
// SetCreatedAt sets the "created_at" field.
func
(
dspc
*
DocServerProjectCreate
)
SetCreatedAt
(
t
time
.
Time
)
*
DocServerProjectCreate
{
func
(
dspc
*
DocServerProjectCreate
)
SetCreatedAt
(
t
time
.
Time
)
*
DocServerProjectCreate
{
dspc
.
mutation
.
SetCreatedAt
(
t
)
dspc
.
mutation
.
SetCreatedAt
(
t
)
...
@@ -245,10 +237,6 @@ func (dspc *DocServerProjectCreate) defaults() error {
...
@@ -245,10 +237,6 @@ func (dspc *DocServerProjectCreate) defaults() error {
v
:=
docserverproject
.
DefaultStatus
v
:=
docserverproject
.
DefaultStatus
dspc
.
mutation
.
SetStatus
(
v
)
dspc
.
mutation
.
SetStatus
(
v
)
}
}
if
_
,
ok
:=
dspc
.
mutation
.
CallbackRes
();
!
ok
{
v
:=
docserverproject
.
DefaultCallbackRes
dspc
.
mutation
.
SetCallbackRes
(
v
)
}
return
nil
return
nil
}
}
...
@@ -288,6 +276,11 @@ func (dspc *DocServerProjectCreate) check() error {
...
@@ -288,6 +276,11 @@ func (dspc *DocServerProjectCreate) check() error {
if
_
,
ok
:=
dspc
.
mutation
.
CallbackRes
();
!
ok
{
if
_
,
ok
:=
dspc
.
mutation
.
CallbackRes
();
!
ok
{
return
&
ValidationError
{
Name
:
"callback_res"
,
err
:
errors
.
New
(
`serversitemicros: missing required field "DocServerProject.callback_res"`
)}
return
&
ValidationError
{
Name
:
"callback_res"
,
err
:
errors
.
New
(
`serversitemicros: missing required field "DocServerProject.callback_res"`
)}
}
}
if
v
,
ok
:=
dspc
.
mutation
.
CallbackRes
();
ok
{
if
err
:=
docserverproject
.
CallbackResValidator
(
v
);
err
!=
nil
{
return
&
ValidationError
{
Name
:
"callback_res"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.callback_res": %w`
,
err
)}
}
}
return
nil
return
nil
}
}
...
...
domain/entity/serversitemicros/docserverproject_update.go
View file @
a217a07e
...
@@ -265,6 +265,11 @@ func (dspu *DocServerProjectUpdate) check() error {
...
@@ -265,6 +265,11 @@ func (dspu *DocServerProjectUpdate) check() error {
return
&
ValidationError
{
Name
:
"target_url"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.target_url": %w`
,
err
)}
return
&
ValidationError
{
Name
:
"target_url"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.target_url": %w`
,
err
)}
}
}
}
}
if
v
,
ok
:=
dspu
.
mutation
.
CallbackRes
();
ok
{
if
err
:=
docserverproject
.
CallbackResValidator
(
v
);
err
!=
nil
{
return
&
ValidationError
{
Name
:
"callback_res"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.callback_res": %w`
,
err
)}
}
}
return
nil
return
nil
}
}
...
@@ -601,6 +606,11 @@ func (dspuo *DocServerProjectUpdateOne) check() error {
...
@@ -601,6 +606,11 @@ func (dspuo *DocServerProjectUpdateOne) check() error {
return
&
ValidationError
{
Name
:
"target_url"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.target_url": %w`
,
err
)}
return
&
ValidationError
{
Name
:
"target_url"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.target_url": %w`
,
err
)}
}
}
}
}
if
v
,
ok
:=
dspuo
.
mutation
.
CallbackRes
();
ok
{
if
err
:=
docserverproject
.
CallbackResValidator
(
v
);
err
!=
nil
{
return
&
ValidationError
{
Name
:
"callback_res"
,
err
:
fmt
.
Errorf
(
`serversitemicros: validator failed for field "DocServerProject.callback_res": %w`
,
err
)}
}
}
return
nil
return
nil
}
}
...
...
domain/entity/serversitemicros/migrate/schema.go
View file @
a217a07e
...
@@ -69,7 +69,7 @@ var (
...
@@ -69,7 +69,7 @@ var (
{
Name
:
"app_id"
,
Type
:
field
.
TypeInt32
,
Default
:
0
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"int"
}},
{
Name
:
"app_id"
,
Type
:
field
.
TypeInt32
,
Default
:
0
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"int"
}},
{
Name
:
"is_private"
,
Type
:
field
.
TypeInt8
,
Default
:
0
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"tinyint"
}},
{
Name
:
"is_private"
,
Type
:
field
.
TypeInt8
,
Default
:
0
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"tinyint"
}},
{
Name
:
"status"
,
Type
:
field
.
TypeInt32
,
Default
:
0
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"int"
}},
{
Name
:
"status"
,
Type
:
field
.
TypeInt32
,
Default
:
0
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"int"
}},
{
Name
:
"callback_res"
,
Type
:
field
.
TypeString
,
Default
:
""
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"varchar(255)
"
}},
{
Name
:
"callback_res"
,
Type
:
field
.
TypeString
,
Size
:
65535
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"text
"
}},
{
Name
:
"created_at"
,
Type
:
field
.
TypeTime
,
Nullable
:
true
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"datetime"
}},
{
Name
:
"created_at"
,
Type
:
field
.
TypeTime
,
Nullable
:
true
,
SchemaType
:
map
[
string
]
string
{
"mysql"
:
"datetime"
}},
}
}
// DocServerProjectTable holds the schema information for the "doc_server_project" table.
// DocServerProjectTable holds the schema information for the "doc_server_project" table.
...
...
domain/entity/serversitemicros/runtime/runtime.go
View file @
a217a07e
...
@@ -72,7 +72,6 @@ func init() {
...
@@ -72,7 +72,6 @@ func init() {
docserverproject
.
Hooks
[
1
]
=
docserverprojectHooks
[
1
]
docserverproject
.
Hooks
[
1
]
=
docserverprojectHooks
[
1
]
docserverproject
.
Hooks
[
2
]
=
docserverprojectHooks
[
2
]
docserverproject
.
Hooks
[
2
]
=
docserverprojectHooks
[
2
]
docserverproject
.
Hooks
[
3
]
=
docserverprojectHooks
[
3
]
docserverproject
.
Hooks
[
3
]
=
docserverprojectHooks
[
3
]
docserverproject
.
Hooks
[
4
]
=
docserverprojectHooks
[
4
]
docserverprojectFields
:=
schema
.
DocServerProject
{}
.
Fields
()
docserverprojectFields
:=
schema
.
DocServerProject
{}
.
Fields
()
_
=
docserverprojectFields
_
=
docserverprojectFields
// docserverprojectDescProjectName is the schema descriptor for project_name field.
// docserverprojectDescProjectName is the schema descriptor for project_name field.
...
@@ -113,8 +112,8 @@ func init() {
...
@@ -113,8 +112,8 @@ func init() {
docserverproject
.
DefaultStatus
=
docserverprojectDescStatus
.
Default
.
(
int32
)
docserverproject
.
DefaultStatus
=
docserverprojectDescStatus
.
Default
.
(
int32
)
// docserverprojectDescCallbackRes is the schema descriptor for callback_res field.
// docserverprojectDescCallbackRes is the schema descriptor for callback_res field.
docserverprojectDescCallbackRes
:=
docserverprojectFields
[
10
]
.
Descriptor
()
docserverprojectDescCallbackRes
:=
docserverprojectFields
[
10
]
.
Descriptor
()
// docserverproject.
DefaultCallbackRes holds the default value on creation for the callback_res field
.
// docserverproject.
CallbackResValidator is a validator for the "callback_res" field. It is called by the builders before save
.
docserverproject
.
DefaultCallbackRes
=
docserverprojectDescCallbackRes
.
Default
.
(
string
)
docserverproject
.
CallbackResValidator
=
docserverprojectDescCallbackRes
.
Validators
[
0
]
.
(
func
(
string
)
error
)
}
}
const
(
const
(
...
...
domain/entity/serversitemicros/schema/doc_server_project.go
View file @
a217a07e
...
@@ -59,11 +59,11 @@ func (DocServerProject) Fields() []ent.Field {
...
@@ -59,11 +59,11 @@ func (DocServerProject) Fields() []ent.Field {
field
.
Int32
(
"status"
)
.
SchemaType
(
map
[
string
]
string
{
field
.
Int32
(
"status"
)
.
SchemaType
(
map
[
string
]
string
{
dialect
.
MySQL
:
"int"
,
dialect
.
MySQL
:
"int"
,
})
.
Default
(
0
)
.
Comment
(
`状态 0 待执行 1 创建转换(待获取进度),2 进度完成待回调 3,回调成功
(全部成功)
`
),
})
.
Default
(
0
)
.
Comment
(
`状态 0 待执行 1 创建转换(待获取进度),2 进度完成待回调 3,回调成功
(全部成功) 4 回调失败 5,执行转换失败
`
),
field
.
String
(
"callback_res"
)
.
SchemaType
(
map
[
string
]
string
{
field
.
Text
(
"callback_res"
)
.
SchemaType
(
map
[
string
]
string
{
dialect
.
MySQL
:
"
varchar(255)
"
,
dialect
.
MySQL
:
"
text
"
,
})
.
Default
(
``
)
.
Comment
(
`回调信息`
),
})
.
MaxLen
(
65535
)
.
Comment
(
`回调信息`
),
field
.
Time
(
"created_at"
)
.
SchemaType
(
map
[
string
]
string
{
field
.
Time
(
"created_at"
)
.
SchemaType
(
map
[
string
]
string
{
dialect
.
MySQL
:
"datetime"
,
dialect
.
MySQL
:
"datetime"
,
...
@@ -84,6 +84,5 @@ func (DocServerProject) Hooks() []ent.Hook {
...
@@ -84,6 +84,5 @@ func (DocServerProject) Hooks() []ent.Hook {
validator
.
MaxRuneLen
(
"source_type"
,
16
),
validator
.
MaxRuneLen
(
"source_type"
,
16
),
validator
.
MaxRuneLen
(
"target_type"
,
16
),
validator
.
MaxRuneLen
(
"target_type"
,
16
),
validator
.
MaxRuneLen
(
"task_id"
,
128
),
validator
.
MaxRuneLen
(
"task_id"
,
128
),
validator
.
MaxRuneLen
(
"callback_res"
,
255
),
}
}
}
}
domain/repository/convert_reposity.go
View file @
a217a07e
...
@@ -189,10 +189,9 @@ func (o *Conversion) Conversion(arg *DoConversionRequest) (map[string]interface{
...
@@ -189,10 +189,9 @@ func (o *Conversion) Conversion(arg *DoConversionRequest) (map[string]interface{
return
ret
,
_err
return
ret
,
_err
}
}
log
.
Info
(
"转换请求参数: %s"
)
// 返回值为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
// 返回值为 Map 类型,可从 Map 中获得三类数据:响应体 body、响应头 headers、HTTP 返回的状态码 statusCode。
res
,
err
:=
ossClient
.
CallApi
(
params
,
request
,
runtime
)
res
,
err
:=
ossClient
.
CallApi
(
params
,
request
,
runtime
)
log
.
Info
(
"DoConversion result返回:
%s
"
)
log
.
Info
(
"DoConversion result返回:"
)
if
err
!=
nil
{
if
err
!=
nil
{
return
ret
,
err
return
ret
,
err
}
}
...
@@ -213,16 +212,15 @@ func (o *Conversion) CreateImClient() (_result *imm20200930.Client, _err error)
...
@@ -213,16 +212,15 @@ func (o *Conversion) CreateImClient() (_result *imm20200930.Client, _err error)
}
}
// 创建项目
// 创建项目
func
(
o
*
Conversion
)
CreateProject
()
(
_err
error
)
{
func
(
o
*
Conversion
)
CreateProject
(
projectName
string
)
(
_err
error
)
{
client
,
createError
:=
o
.
CreateImClient
()
client
,
createError
:=
o
.
CreateImClient
()
fmt
.
Println
(
client
)
if
createError
!=
nil
{
if
createError
!=
nil
{
return
createError
return
createError
}
}
createProjectRequest
:=
&
imm20200930
.
CreateProjectRequest
{}
createProjectRequest
:=
&
imm20200930
.
CreateProjectRequest
{}
ProjectName
:=
"DOC_TO_PDF"
//
ProjectName := "DOC_TO_PDF"
createProjectRequest
.
ProjectName
=
&
P
rojectName
createProjectRequest
.
ProjectName
=
&
p
rojectName
runtime
:=
&
util
.
RuntimeOptions
{}
runtime
:=
&
util
.
RuntimeOptions
{}
tryErr
:=
func
()
(
_e
error
)
{
tryErr
:=
func
()
(
_e
error
)
{
...
@@ -254,7 +252,7 @@ func (o *Conversion) CreateProject() (_err error) {
...
@@ -254,7 +252,7 @@ func (o *Conversion) CreateProject() (_err error) {
return
decodeError
return
decodeError
}
}
if
m
,
ok
:=
data
.
(
map
[
string
]
interface
{});
ok
{
if
m
,
ok
:=
data
.
(
map
[
string
]
interface
{});
ok
{
log
.
Error
(
"创建项目出现异常
%s
"
)
log
.
Error
(
"创建项目出现异常"
)
resultCode
,
assertCodeError
:=
util
.
AssertAsString
(
m
[
"Code"
])
resultCode
,
assertCodeError
:=
util
.
AssertAsString
(
m
[
"Code"
])
if
assertCodeError
!=
nil
{
if
assertCodeError
!=
nil
{
return
assertCodeError
return
assertCodeError
...
@@ -268,7 +266,7 @@ func (o *Conversion) CreateProject() (_err error) {
...
@@ -268,7 +266,7 @@ func (o *Conversion) CreateProject() (_err error) {
if
assertError
!=
nil
{
if
assertError
!=
nil
{
return
assertError
return
assertError
}
}
log
.
Error
(
"创建项目出现异常
%s
"
)
log
.
Error
(
"创建项目出现异常"
)
}
}
return
nil
return
nil
}
}
...
...
domain/service/convert_service.go
View file @
a217a07e
...
@@ -21,8 +21,19 @@ func recoverPanic() {
...
@@ -21,8 +21,19 @@ func recoverPanic() {
}
}
}
}
// 发起文件转换
/*
**
发起文件转换
格式:(source_type)
文字文档(Word):doc、docx、wps、wpss、docm、dotm、dot、dotx、html。
演示文档(PPT):pptx、ppt、pot、potx、pps、ppsx、dps、dpt、pptm、potm、ppsm、dpss。
表格文档(Excel):xls、xlt、et、ett、xlsx、xltx、csv、xlsb、xlsm、xltm、ets。
输出格式:(target_type)
图片:png、jpg。
文本:txt。
PDF:pdf。
*/
func
(
doc
*
DocServiceService
)
DoConversion
(
c
context
.
Context
,
req
*
pb
.
DoConversionRequest
)
(
resp
*
pb
.
DoConversionResponse
,
err
error
)
{
func
(
doc
*
DocServiceService
)
DoConversion
(
c
context
.
Context
,
req
*
pb
.
DoConversionRequest
)
(
resp
*
pb
.
DoConversionResponse
,
err
error
)
{
defer
recoverPanic
()
defer
recoverPanic
()
resp
=
&
pb
.
DoConversionResponse
{}
resp
=
&
pb
.
DoConversionResponse
{}
...
@@ -43,7 +54,7 @@ func (doc *DocServiceService) DoConversion(c context.Context, req *pb.DoConversi
...
@@ -43,7 +54,7 @@ func (doc *DocServiceService) DoConversion(c context.Context, req *pb.DoConversi
}
}
//创建项目
//创建项目
createErr
:=
service
.
NewConversion
()
.
CreateProject
()
createErr
:=
service
.
NewConversion
()
.
CreateProject
(
req
.
ProjectName
)
if
createErr
!=
nil
{
if
createErr
!=
nil
{
resp
.
Msg
=
createErr
.
Error
()
resp
.
Msg
=
createErr
.
Error
()
resp
.
Code
=
100010
resp
.
Code
=
100010
...
...
go.mod
View file @
a217a07e
...
@@ -13,9 +13,8 @@ require (
...
@@ -13,9 +13,8 @@ require (
github.com/go-sql-driver/mysql v1.8.1
github.com/go-sql-driver/mysql v1.8.1
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1
github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.1
github.com/nacos-group/nacos-sdk-go/v2 v2.2.4
github.com/nacos-group/nacos-sdk-go/v2 v2.2.4
github.com/robfig/cron v1.2.0
gitlab.galaxy-immi.com/Backend-group/go-com v1.4.2-test-rc12
gitlab.galaxy-immi.com/Backend-group/go-com v1.4.2-test-rc12
gitlab.galaxy-immi.com/Backend-group/proto v1.
10.11-0.20240918113320-a219a51d3141
gitlab.galaxy-immi.com/Backend-group/proto v1.
6.31-test-rc26
go.uber.org/zap v1.21.0
go.uber.org/zap v1.21.0
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094
google.golang.org/grpc v1.64.0
google.golang.org/grpc v1.64.0
...
...
go.sum
View file @
a217a07e
...
@@ -104,7 +104,6 @@ github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTs
...
@@ -104,7 +104,6 @@ github.com/aliyun/credentials-go v1.3.1/go.mod h1:8jKYhQuDawt8x2+fusqa1Y6mPxemTs
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
...
@@ -202,7 +201,6 @@ github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpv
...
@@ -202,7 +201,6 @@ github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpv
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
...
@@ -356,7 +354,6 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
...
@@ -356,7 +354,6 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4=
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348 h1:MtvEpTB6LX3vkb4ax0b5D2DHbNAUsen0Gx5wZoq3lV4=
github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
...
@@ -465,8 +462,6 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
...
@@ -465,8 +462,6 @@ github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1
github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/robfig/cron v1.2.0 h1:ZjScXvvxeQ63Dbyxy76Fj3AT3Ut0aKsyd2/tl3DTMuQ=
github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfmt2k=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
...
@@ -476,7 +471,6 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb
...
@@ -476,7 +471,6 @@ github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb
github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
github.com/shirou/gopsutil/v3 v3.21.6 h1:vU7jrp1Ic/2sHB7w6UNs7MIkn7ebVtTb5D9j45o9VYE=
github.com/shirou/gopsutil/v3 v3.21.6 h1:vU7jrp1Ic/2sHB7w6UNs7MIkn7ebVtTb5D9j45o9VYE=
github.com/shirou/gopsutil/v3 v3.21.6/go.mod h1:JfVbDpIBLVzT8oKbvMg9P3wEIMDDpVn+LwHTKj0ST88=
github.com/shirou/gopsutil/v3 v3.21.6/go.mod h1:JfVbDpIBLVzT8oKbvMg9P3wEIMDDpVn+LwHTKj0ST88=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8=
...
@@ -547,19 +541,10 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
...
@@ -547,19 +541,10 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/zclconf/go-cty v1.8.0 h1:s4AvqaeQzJIu3ndv4gVIhplVD0krU+bgrcLSVUnaWuA=
github.com/zclconf/go-cty v1.8.0 h1:s4AvqaeQzJIu3ndv4gVIhplVD0krU+bgrcLSVUnaWuA=
github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8=
gitlab.galaxy-immi.com/Backend-group/go-com v1.4.2-test-rc12 h1:bzReHSzFXDEDY63QL0VDMfcfAL8MYm7I4h6iB6qIAeY=
gitlab.galaxy-immi.com/Backend-group/go-com v1.4.2-test-rc12 h1:bzReHSzFXDEDY63QL0VDMfcfAL8MYm7I4h6iB6qIAeY=
gitlab.galaxy-immi.com/Backend-group/go-com v1.4.2-test-rc12/go.mod h1:Wyfqynjmd55ApRDPxuFOlOwcYhS+L0LZU4oExla7+Lw=
gitlab.galaxy-immi.com/Backend-group/go-com v1.4.2-test-rc12/go.mod h1:Wyfqynjmd55ApRDPxuFOlOwcYhS+L0LZU4oExla7+Lw=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240914031913-37c18f143a6d h1:ceqoQcF4aT0Uo3vR3yB4IVqbrWiJwY4/Tawfc/6hrOs=
gitlab.galaxy-immi.com/Backend-group/proto v1.6.31-test-rc26 h1:sExNhVkZzKAOZI3lEIw+GzstnozAxdRKuFWx6RpGv/Q=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240914031913-37c18f143a6d/go.mod h1:vXZLtbzFvAjc86DXqO8LdYjBkMGc5fVh5XGe2bi4FqE=
gitlab.galaxy-immi.com/Backend-group/proto v1.6.31-test-rc26/go.mod h1:vXZLtbzFvAjc86DXqO8LdYjBkMGc5fVh5XGe2bi4FqE=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918032310-d804e767dd2c h1:oxGqTzwREd3VqEWW2sdZrRytUXAon4McO1n7xtBsk+o=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918032310-d804e767dd2c/go.mod h1:vXZLtbzFvAjc86DXqO8LdYjBkMGc5fVh5XGe2bi4FqE=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918095351-4c83d1387443 h1:+A3YLf+cZwN//TYiyXq/Eg3ENcreWFuW+4yVO36QyXY=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918095351-4c83d1387443/go.mod h1:vXZLtbzFvAjc86DXqO8LdYjBkMGc5fVh5XGe2bi4FqE=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918112310-5bc55fd5ae98 h1:GevfB8xTJmKtS4+Gd55/mRWW9TzYwF6twF//f03QvLI=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918112310-5bc55fd5ae98/go.mod h1:vXZLtbzFvAjc86DXqO8LdYjBkMGc5fVh5XGe2bi4FqE=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918113320-a219a51d3141 h1:pWEKbayUSmeSrrxLfahEky3yujIgxPbc29E56cCkyO0=
gitlab.galaxy-immi.com/Backend-group/proto v1.10.11-0.20240918113320-a219a51d3141/go.mod h1:vXZLtbzFvAjc86DXqO8LdYjBkMGc5fVh5XGe2bi4FqE=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk=
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment