PLT-2600/PLT-2770 Changed getPublicLink api call to return a proper JSON string (#2914)
* Removed unused channelId and userId parameters from web client getPublicLink method * Changed getPublicLink api call to return a proper JSON string
Этот коммит содержится в:
коммит произвёл
Corey Hulen
родитель
6c75662b82
Коммит
e1cae3b15b
@@ -529,7 +529,7 @@ func getPublicLink(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
w.Write([]byte(url))
|
||||
w.Write([]byte(model.StringToJson(url)))
|
||||
}
|
||||
|
||||
func getExport(c *Context, w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
@@ -997,15 +997,8 @@ func (c *Client) GetPublicLink(filename string) (*Result, *AppError) {
|
||||
if r, err := c.DoApiPost(c.GetTeamRoute()+"/files/get_public_link", MapToJson(map[string]string{"filename": filename})); err != nil {
|
||||
return nil, err
|
||||
} else {
|
||||
var link string
|
||||
if body, err := ioutil.ReadAll(r.Body); err == nil {
|
||||
link = string(body)
|
||||
} else {
|
||||
// all the other Client methods return an empty string on invalid json, so we can too
|
||||
}
|
||||
|
||||
return &Result{r.Header.Get(HEADER_REQUEST_ID),
|
||||
r.Header.Get(HEADER_ETAG_SERVER), link}, nil
|
||||
r.Header.Get(HEADER_ETAG_SERVER), StringFromJson(r.Body)}, nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -178,6 +178,26 @@ func StringInterfaceFromJson(data io.Reader) map[string]interface{} {
|
||||
}
|
||||
}
|
||||
|
||||
func StringToJson(s string) string {
|
||||
b, err := json.Marshal(s)
|
||||
if err != nil {
|
||||
return ""
|
||||
} else {
|
||||
return string(b)
|
||||
}
|
||||
}
|
||||
|
||||
func StringFromJson(data io.Reader) string {
|
||||
decoder := json.NewDecoder(data)
|
||||
|
||||
var s string
|
||||
if err := decoder.Decode(&s); err != nil {
|
||||
return ""
|
||||
} else {
|
||||
return s
|
||||
}
|
||||
}
|
||||
|
||||
func IsLower(s string) bool {
|
||||
if strings.ToLower(s) == s {
|
||||
return true
|
||||
|
||||
@@ -281,12 +281,10 @@ export function showGetPostLinkModal(post) {
|
||||
});
|
||||
}
|
||||
|
||||
export function showGetPublicLinkModal(channelId, userId, filename) {
|
||||
export function showGetPublicLinkModal(filename) {
|
||||
AppDispatcher.handleViewAction({
|
||||
type: ActionTypes.TOGGLE_GET_PUBLIC_LINK_MODAL,
|
||||
value: true,
|
||||
channelId,
|
||||
userId,
|
||||
filename
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1326,10 +1326,8 @@ export default class Client {
|
||||
end(this.handleResponse.bind(this, 'getFileInfo', success, error));
|
||||
}
|
||||
|
||||
getPublicLink = (channelId, userId, filename, success, error) => {
|
||||
getPublicLink = (filename, success, error) => {
|
||||
const data = {
|
||||
channel_id: channelId,
|
||||
user_id: userId,
|
||||
filename
|
||||
};
|
||||
|
||||
|
||||
@@ -23,8 +23,6 @@ export default class GetPublicLinkModal extends React.Component {
|
||||
|
||||
this.state = {
|
||||
show: false,
|
||||
channelId: '',
|
||||
userId: '',
|
||||
filename: '',
|
||||
link: ''
|
||||
};
|
||||
@@ -36,7 +34,7 @@ export default class GetPublicLinkModal extends React.Component {
|
||||
|
||||
componentDidUpdate(prevProps, prevState) {
|
||||
if (this.state.show && !prevState.show) {
|
||||
AsyncClient.getPublicLink(this.state.channelId, this.state.userId, this.state.filename, this.handlePublicLink);
|
||||
AsyncClient.getPublicLink(this.state.filename, this.handlePublicLink);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,8 +51,6 @@ export default class GetPublicLinkModal extends React.Component {
|
||||
handleToggle(value, args) {
|
||||
this.setState({
|
||||
show: value,
|
||||
channelId: args.channelId,
|
||||
userId: args.userId,
|
||||
filename: args.filename,
|
||||
link: ''
|
||||
});
|
||||
|
||||
@@ -197,7 +197,7 @@ class ViewImageModal extends React.Component {
|
||||
handleGetPublicLink() {
|
||||
this.props.onModalDismissed();
|
||||
|
||||
GlobalActions.showGetPublicLinkModal(this.props.channelId, this.props.userId, this.props.filenames[this.state.imgId]);
|
||||
GlobalActions.showGetPublicLinkModal(this.props.filenames[this.state.imgId]);
|
||||
}
|
||||
|
||||
onMouseEnterImage() {
|
||||
|
||||
@@ -1344,8 +1344,8 @@ export function regenCommandToken(id) {
|
||||
);
|
||||
}
|
||||
|
||||
export function getPublicLink(channelId, userId, filename, success, error) {
|
||||
const callName = 'getPublicLink' + channelId + userId + filename;
|
||||
export function getPublicLink(filename, success, error) {
|
||||
const callName = 'getPublicLink' + filename;
|
||||
|
||||
if (isCallInProgress(callName)) {
|
||||
return;
|
||||
@@ -1354,8 +1354,6 @@ export function getPublicLink(channelId, userId, filename, success, error) {
|
||||
callTracker[callName] = utils.getTimestamp();
|
||||
|
||||
Client.getPublicLink(
|
||||
channelId,
|
||||
userId,
|
||||
filename,
|
||||
(link) => {
|
||||
callTracker[callName] = 0;
|
||||
|
||||
Ссылка в новой задаче
Block a user