Closed Bug 474249 Opened 16 years ago Closed 16 years ago

Add a WebService interface to add a See Also bug link to a bug

Categories

(Bugzilla :: WebService, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED FIXED
Bugzilla 3.4

People

(Reporter: mkanat, Assigned: mkanat)

References

(Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

This is an important part of future inter-Bugzilla functionality--we need a WebServices interface so that other Bugzillas (and possibly other clients) can set a "see also" URL on bugs in this Bugzilla.

It will have an API like this:

Bug.add_see_also({ ids => [1,2,3], urls => ['http://somewhere/show_bug.cgi?id=1', 'http://somewhere_else/show_bug.cgi?id=1'] });
Assignee: webservice → mkanat
Status: NEW → ASSIGNED
Target Milestone: --- → Bugzilla 3.4
Attached patch v1 (obsolete) — Splinter Review
Okay, here we go! :-)
Attachment #357603 - Flags: review?(dkl)
(In reply to comment #0)
> This is an important part of future inter-Bugzilla functionality--we need a
> WebServices interface so that other Bugzillas (and possibly other clients) can
> set a "see also" URL on bugs in this Bugzilla.
> 
> It will have an API like this:
> 
> Bug.add_see_also({ ids => [1,2,3], urls =>
> ['http://somewhere/show_bug.cgi?id=1',
> 'http://somewhere_else/show_bug.cgi?id=1'] });

Just a quick what if before I do a full review. What if the user wanted to specify a bug url for one bug id and a different one for another? Would we just require them to make two separate calls and keep it simple or should we allo that in the API for this method? For example:

Bug.add_see_also({ ids => { 1 => ['http://somewhere/show_bug.cgi?id=1'],
                            2 => ['http://somewhere/show_bug.cgi?id=1',
                                  'http://somewhere_else/show_bug.cgi?id=1'],
                            3 => ['http://somewhere_else/show_bug.cgi?id=1'] });


I don't have a problem with just saying they must make separate calls but I wanted to throw it out. 

Dave
(In reply to comment #2)
> Just a quick what if before I do a full review. What if the user wanted to
> specify a bug url for one bug id and a different one for another? Would we just
> require them to make two separate calls and keep it simple or should we allo
> that in the API for this method?

  For now, I think we should keep it simple and just require them to make two separate calls. If somebody has a client application where it's a valid use case to add an enormous variation of URLs to a large number of bugs, we can consider how best to support them once we have their real-world use-case.

> I don't have a problem with just saying they must make separate calls but I
> wanted to throw it out. 

  Yeah, I'm glad you thought of it, I hadn't really considered it. :-) I think we'll stick with the simple method for now, though.
Attachment #357603 - Flags: review?(dkl) → review+
Comment on attachment 357603 [details] [diff] [review]
v1

Looks good and works as expected for different scenarios. r=dkl

I assume another bug will be needed to create a Bug.remove_see_also() in the future?
(In reply to comment #4)
> I assume another bug will be needed to create a Bug.remove_see_also() in the
> future?

  Yeah, actually we'll probably need that now, so I should file the bug. :-) Or should I just revise this function to update_see_also, and let it both add and remove URLs at once? I think that'd be better. New patch coming.
I thought the same after I wrote the review.  Maybe add an action key to the params? action => 'add|remove'?

Dave
Attached patch v2Splinter Review
Okay, here it is now as update_see_also. It also has a return value now, which I realized will be needed in order for clients to tell if the function actually did anything. (This will be important in the future for Bugzilla itself, also, to be sure that it's not creating a cross-installation dependency loop.)
Attachment #357603 - Attachment is obsolete: true
Attachment #357825 - Flags: review?(dkl)
Comment on attachment 357825 [details] [diff] [review]
v2

Looks good and passes all tests. r=dkl
Attachment #357825 - Flags: review?(dkl) → review+
Checking in Bugzilla/WebService/Bug.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm,v  <--  Bug.pm
new revision: 1.24; previous revision: 1.23
done
Checking in Bugzilla/WebService/Constants.pm;
/cvsroot/mozilla/webtools/bugzilla/Bugzilla/WebService/Constants.pm,v  <--  Constants.pm
new revision: 1.23; previous revision: 1.22
done
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Flags: approval+
Keywords: relnote
Resolution: --- → FIXED
Flags: testcase?
Added to the release notes for Bugzilla 3.4 in bug 494037.
Keywords: relnote
Flags: testcase? → testcase+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: