用户如果赞过内容,按下这个内容动作里的心形小图标,可以请求取消点赞接口取消点赞这个内容。先新建一个文件,放在 lib/like/destroy 里面,名字是 like_destroy_model.dart。
在文件里定义一个类,名字是 LikeDestroyModel,让它继承一下 ChangeNotifier ,在这个类里面添加一个属性,类型是 AppService 名字是 appService。然后添加一个构造方法,LikeDestroyModel,添加一个带名字的参数,用 required 标记一下 this.appService 。
在类里面再定义一个方法,deleteUserLikePost接收一个 int 类型的参数,名字是 postId,这个参数的值就是取消点赞的内容的 id。在方法里声明一个 uri,值可以用 Uri.parse 处理一下取消点赞接口地址,先是 AppConfig,导入这个 AppConfig,用一下 apiBaseUrl,然后是 /posts/ 后面加上 $postId,再加上 /like。
声明一个 response,它的值可以 await 执行 appService.apiHttpClient.delete 这个方法,发送一个 DELETE 类型的 HTTP 请求,请求的地址是上面准备好的这个 uri。
下面可以判断一下,如果 response.statusCode 等于 200 ,可以执行一下 notifyListeners(),不然的话就 throw 一个异常,throw 一个 HttpException ,异常信息是 responseBody['message'] 。