@@ -225,6 +225,7 @@ export namespace Qiita {
225
225
226
226
}
227
227
228
+
228
229
export class Qiita {
229
230
230
231
private token = '' ;
@@ -366,6 +367,39 @@ export class Qiita {
366
367
return this . get ( `${ this . endpoint } ${ this . version } /items/${ itemId } /likes` ) ;
367
368
}
368
369
370
+ /**
371
+ * 与えられた認証情報をもとに新しいアクセストークンを発行します。
372
+ * @param clientId 登録されたAPIクライアントを特定するためのID
373
+ * @param clientSecret 登録されたAPIクライアントを認証するための秘密鍵
374
+ * @param code リダイレクト用のURLに付与された、アクセストークンと交換するための文字列
375
+ * @return アクセストークン
376
+ */
377
+ public fetchAccessToken = ( clientId : string , clientSecret : string , code : string ) : Promise < Qiita . AccessToken > => {
378
+ return this . post ( `${ this . endpoint } ${ this . version } /access_tokens` , {
379
+ client_id : clientId ,
380
+ client_secret : clientSecret ,
381
+ code,
382
+ } ) ;
383
+ }
384
+
385
+ /**
386
+ * 指定されたアクセストークンを失効させ、それ以降利用できないようにします。
387
+ * @param token アクセストークン
388
+ * @return 空のオブジェクト
389
+ */
390
+ public deleteAccessToken = ( token : string ) : Promise < { } > => {
391
+ return this . delete ( `${ this . endpoint } ${ this . version } /access_tokens/${ token } ` ) ;
392
+ }
393
+
394
+ /**
395
+ * コメントを削除します。
396
+ * @param commentId コメントのID
397
+ * @return 空のオブジェクト
398
+ */
399
+ public deleteComment = ( commentId : string ) : Promise < { } > => {
400
+ return this . delete ( `${ this . endpoint } ${ this . version } /comments/${ commentId } ` ) ;
401
+ }
402
+
369
403
/**
370
404
* コメントを取得します。
371
405
* @param commentId コメントのID
@@ -384,15 +418,6 @@ export class Qiita {
384
418
return this . patch ( `${ this . endpoint } ${ this . version } /comments/${ commentId } ` , { body } ) ;
385
419
}
386
420
387
- /**
388
- * コメントを削除します。
389
- * @param commentId コメントのID
390
- * @return 空のオブジェクト
391
- */
392
- public deleteComment = ( commentId : string ) : Promise < { } > => {
393
- return this . delete ( `${ this . endpoint } ${ this . version } /comments/${ commentId } ` ) ;
394
- }
395
-
396
421
/**
397
422
* 投稿に付けられたコメント一覧を投稿日時の降順で取得します。
398
423
* @param itemId 投稿のID
@@ -430,4 +455,91 @@ export class Qiita {
430
455
public createCommentToProject = ( projectId : string , body : string ) : Promise < Qiita . Comment [ ] > => {
431
456
return this . post ( `${ this . endpoint } ${ this . version } /items/${ projectId } /comments` , { body } ) ;
432
457
}
458
+
459
+ /**
460
+ * 投稿にタグを追加します。Qiita:Teamでのみ有効です。
461
+ * @param itemId 投稿のID
462
+ * @param name タグを特定するための一意な名前
463
+ * @param versions (説明なし)
464
+ */
465
+ public addTaggingToItem = ( itemId : string , name : string , versions : string [ ] ) : Promise < Qiita . Tagging > => {
466
+ return this . post ( `${ this . endpoint } ${ this . version } /items/${ itemId } /taggings` , { name, versions } ) ;
467
+ }
468
+
469
+ /**
470
+ * 投稿から指定されたタグを取り除きます。Qiita:Teamでのみ有効です。
471
+ * @param itemId 投稿のID
472
+ * @param taggingId タギングのID
473
+ * @return 空のオブジェクト
474
+ */
475
+ public removeTaggingFromItem = ( itemId , taggingId ) : Promise < { } > => {
476
+ return this . delete ( `${ this . endpoint } ${ this . version } /items/${ itemId } /taggings/${ taggingId } ` ) ;
477
+ }
478
+
479
+ /**
480
+ * タグ一覧を作成日時の降順で返します。
481
+ * @param page ページ番号 (1から100まで)
482
+ * @param perPage 1ページあたりに含まれる要素数 (1から100まで)
483
+ * @param sort 並び順 (countで投稿数順、nameで名前順)
484
+ * @return タグ一覧
485
+ */
486
+ public fetchTags = ( page : string , perPage : string , sort : string ) : Promise < Qiita . Tag [ ] > => {
487
+ return this . get ( `${ this . endpoint } ${ this . version } /tags` , {
488
+ page,
489
+ per_page : perPage ,
490
+ sort,
491
+ } ) ;
492
+ }
493
+
494
+ /**
495
+ * タグを取得します。
496
+ * @param tagId タグのID
497
+ * @return タグ
498
+ */
499
+ public fetchTag = ( tagId : string ) : Promise < Qiita . Tag > => {
500
+ return this . get ( `${ this . endpoint } ${ this . version } /tags/${ tagId } ` ) ;
501
+ }
502
+
503
+ /**
504
+ * ユーザがフォローしているタグ一覧をフォロー日時の降順で返します。
505
+ * @param userId ユーザーID
506
+ * @param page ページ番号 (1から100まで)
507
+ * @param perPage 1ページあたりに含まれる要素数 (1から100まで)
508
+ * @return タグ一覧
509
+ */
510
+ public fetchFollowingTags = ( userId : string , page : string , perPage : string ) : Promise < Qiita . Tag [ ] > => {
511
+ return this . get ( `${ this . endpoint } ${ this . version } /${ userId } /following_tags` , {
512
+ page,
513
+ per_page : perPage ,
514
+ } ) ;
515
+ }
516
+
517
+ /**
518
+ * タグをフォローします。
519
+ * @param tagId タグのID
520
+ * @return 空のオブジェクト
521
+ */
522
+ public unfollowTag = ( tagId : string ) : Promise < { } > => {
523
+ return this . delete ( `${ this . endpoint } ${ this . version } /tags/${ tagId } /following` ) ;
524
+ }
525
+
526
+ /**
527
+ * タグをフォローしているかどうかを調べます。
528
+ * @param tagId タグのID
529
+ * @return タグ
530
+ */
531
+ public fetchIfFollowingTag = ( tagId : string ) : Promise < Qiita . Tag > => {
532
+ return this . get ( `${ this . endpoint } ${ this . version } /tags/${ tagId } /following` ) ;
533
+ }
534
+
535
+ /**
536
+ * タグをフォローします。
537
+ * @param tagId タグのID
538
+ * @return 空のオブジェクト
539
+ */
540
+ public followTag = ( tagId : string ) : Promise < Qiita . Tag > => {
541
+ return this . put ( `${ this . endpoint } ${ this . version } /tags/${ tagId } /following` ) ;
542
+ }
543
+
544
+
433
545
}
0 commit comments